{"id":15312,"date":"2025-04-24T14:58:05","date_gmt":"2025-04-24T18:58:05","guid":{"rendered":"https:\/\/sing2sky.com\/%d0%b3%d0%bb%d0%b0%d0%b2%d0%bd%d0%b0%d1%8f\/"},"modified":"2026-01-07T04:29:23","modified_gmt":"2026-01-07T09:29:23","slug":"%d0%b3%d0%bb%d0%b0%d0%b2%d0%bd%d0%b0%d1%8f","status":"publish","type":"page","link":"https:\/\/sing2sky.com\/ru\/","title":{"rendered":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15312\" class=\"elementor elementor-15312 elementor-24\" wpc-filter-elementor-widget=\"1\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca66d28 e-con-full e-flex e-con e-parent\" data-id=\"ca66d28\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d52d3c4 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"d52d3c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Preload critical LCP image -->\r\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/banner1.avif\" fetchpriority=\"high\">\r\n\r\n<style>\r\n  \/* \u91cd\u7f6e\u5bb9\u5668\u7684\u7236\u7ea7\u5143\u7d20 *\/\r\n  body, html {\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    width: 100% !important;\r\n    overflow-x: hidden !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  * {\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  \/* \u5f3a\u5236\u79fb\u9664\u4efb\u4f55\u53ef\u80fd\u7684\u7236\u7ea7\u7ea6\u675f *\/\r\n  .elementor-carousel-container {\r\n    position: relative !important;\r\n    width: 100vw !important;\r\n    height: clamp(300px, calc(940 \/ 1200 * 100vw), 940px) !important;\r\n    min-height: 300px !important;\r\n    max-height: 100vh !important;\r\n    max-width: none !important;\r\n    overflow: hidden !important;\r\n    background: #000 !important;\r\n    touch-action: pan-y pinch-zoom !important;\r\n    \r\n    \/* \u5f3a\u5236\u5168\u5c4f\u5b9a\u4f4d *\/\r\n    margin-left: calc(-50vw + 50%) !important;\r\n    margin-right: calc(-50vw + 50%) !important;\r\n    left: 0 !important;\r\n    right: 0 !important;\r\n    \r\n    \/* \u989d\u5916\u4fdd\u969c *\/\r\n    transform: translateX(0) !important;\r\n    display: block !important;\r\n  }\r\n\r\n  .elementor-carousel {\r\n    display: flex !important;\r\n    width: 700% !important; \/* 6 original images + 1 cloned image *\/\r\n    height: 100% !important;\r\n    transition: transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;\r\n    will-change: transform !important;\r\n  }\r\n\r\n  .elementor-carousel-slide {\r\n    position: relative !important;\r\n    flex: 0 0 14.286% !important; \/* 100% \/ 7 = 14.286% (6 original + 1 cloned) *\/\r\n    width: 14.286% !important;\r\n    min-width: 14.286% !important;\r\n    height: 100% !important;\r\n    overflow: hidden !important;\r\n    background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 50%, #1a1a1a 100%) !important;\r\n  }\r\n\r\n  .elementor-carousel-slide img {\r\n    width: 100% !important;\r\n    height: 100% !important;\r\n    object-fit: cover !important;\r\n    object-position: center center !important;\r\n    transition: transform 8s ease-out !important;\r\n    image-rendering: -webkit-optimize-contrast !important;\r\n    image-rendering: crisp-edges !important;\r\n    pointer-events: none !important;\r\n    \/* Prevent layout shift *\/\r\n    aspect-ratio: 1920\/1280 !important;\r\n    display: block !important;\r\n  }\r\n\r\n  .elementor-carousel-slide.active img {\r\n    transform: scale(1.05) !important;\r\n  }\r\n\r\n  .elementor-carousel-content {\r\n    position: absolute !important;\r\n    top: 0 !important;\r\n    left: 0 !important;\r\n    right: 0 !important;\r\n    bottom: 0 !important;\r\n    background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 50%, rgba(0,0,0,0.4) 100%) !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    text-align: center !important;\r\n    z-index: 2 !important;\r\n  }\r\n\r\n  .elementor-content-inner {\r\n    max-width: 800px !important;\r\n    padding: 2rem !important;\r\n    color: white !important;\r\n    opacity: 0 !important;\r\n    transform: translateY(30px) !important;\r\n    transition: all 0.8s ease-out !important;\r\n  }\r\n\r\n  .elementor-carousel-slide.active .elementor-content-inner {\r\n    opacity: 1 !important;\r\n    transform: translateY(0) !important;\r\n    transition-delay: 0.3s !important;\r\n  }\r\n\r\n  .elementor-content-subtitle {\r\n    font-size: clamp(1.3rem, 3.5vw, 1.8rem) !important;\r\n    font-weight: 600 !important;\r\n    margin-bottom: 2.5rem !important;\r\n    opacity: 0.9 !important;\r\n    line-height: 1.6 !important;\r\n    text-shadow: 0 2px 8px rgba(0,0,0,0.3) !important;\r\n  }\r\n\r\n  .elementor-content-button {\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    gap: 0.4rem !important;\r\n    padding: 0.8rem 2rem !important;\r\n    font-size: 1rem !important;\r\n    font-weight: 700 !important;\r\n    color: white !important;\r\n    background: transparent !important;\r\n    border: 2px solid rgba(255,255,255,0.3) !important;\r\n    border-radius: 50px !important;\r\n    text-decoration: none !important;\r\n    transition: all 0.3s ease !important;\r\n    cursor: pointer !important;\r\n    text-transform: uppercase !important;\r\n    letter-spacing: 0.5px !important;\r\n  }\r\n\r\n  .elementor-content-button:hover {\r\n    background: rgba(255,255,255,0.2) !important;\r\n    border-color: rgba(255,255,255,0.5) !important;\r\n    transform: translateY(-2px) !important;\r\n    box-shadow: 0 8px 25px rgba(0,0,0,0.2) !important;\r\n  }\r\n\r\n  .elementor-nav-button {\r\n    position: absolute !important;\r\n    top: 50% !important;\r\n    transform: translateY(-50%) !important;\r\n    width: 60px !important;\r\n    height: 60px !important;\r\n    background: rgba(255,255,255,0.1) !important;\r\n    backdrop-filter: blur(10px) !important;\r\n    border: 1px solid rgba(255,255,255,0.2) !important;\r\n    border-radius: 50% !important;\r\n    color: white !important;\r\n    font-size: 1.2rem !important;\r\n    cursor: pointer !important;\r\n    z-index: 10 !important;\r\n    transition: all 0.3s ease !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n  }\r\n\r\n  .elementor-nav-button:hover {\r\n    background: rgba(255,255,255,0.2) !important;\r\n    border-color: rgba(255,255,255,0.4) !important;\r\n    transform: translateY(-50%) scale(1.1) !important;\r\n  }\r\n\r\n  .elementor-nav-prev {\r\n    left: 3rem !important;\r\n  }\r\n\r\n  .elementor-nav-next {\r\n    right: 3rem !important;\r\n  }\r\n\r\n  .elementor-pagination {\r\n    position: absolute !important;\r\n    bottom: 3rem !important;\r\n    left: 50% !important;\r\n    transform: translateX(-50%) !important;\r\n    display: flex !important;\r\n    gap: 1.5rem !important;\r\n    z-index: 10 !important;\r\n  }\r\n\r\n  .elementor-pagination-dot {\r\n    width: 12px !important;\r\n    height: 12px !important;\r\n    border-radius: 50% !important;\r\n    background: rgba(255,255,255,0.3) !important;\r\n    cursor: pointer !important;\r\n    transition: all 0.3s ease !important;\r\n  }\r\n\r\n  .elementor-pagination-dot.active {\r\n    background: white !important;\r\n    transform: scale(1.2) !important;\r\n  }\r\n\r\n  .elementor-pagination-dot:hover {\r\n    background: rgba(255,255,255,0.7) !important;\r\n    transform: scale(1.1) !important;\r\n  }\r\n\r\n  \/* Mobile optimization *\/\r\n  @media screen and (max-width: 768px) {\r\n    .elementor-carousel-container {\r\n      width: 100vw !important;\r\n      max-width: 100vw !important;\r\n      margin-left: calc(-50vw + 50%) !important;\r\n      margin-right: calc(-50vw + 50%) !important;\r\n      left: 0 !important;\r\n      right: 0 !important;\r\n      position: relative !important;\r\n      box-sizing: border-box !important;\r\n      touch-action: pan-y !important;\r\n      overflow: hidden !important;\r\n    }\r\n    \r\n    .elementor-carousel {\r\n      width: 700% !important; \/* 7 slides total *\/\r\n    }\r\n    \r\n    .elementor-carousel-slide {\r\n      flex: 0 0 14.286% !important; \/* Each slide is 1\/7 of carousel width *\/\r\n      width: 14.286% !important;\r\n      min-width: 14.286% !important;\r\n      max-width: 14.286% !important;\r\n      box-sizing: border-box !important;\r\n    }\r\n    \r\n    .elementor-carousel-slide img {\r\n      width: 100% !important;\r\n      height: 100% !important;\r\n      object-fit: cover !important;\r\n      object-position: center center !important;\r\n      transform: translateZ(0) !important;\r\n      backface-visibility: hidden !important;\r\n      display: block !important;\r\n    }\r\n    \r\n    .elementor-nav-button {\r\n      display: none !important;\r\n    }\r\n\r\n    .elementor-content-inner {\r\n      max-width: 90% !important;\r\n      padding: 1.5rem 1rem !important;\r\n    }\r\n    \r\n    .elementor-content-subtitle {\r\n      font-size: clamp(0.95rem, 4vw, 1.2rem) !important;\r\n      margin-bottom: 2rem !important;\r\n      line-height: 1.5 !important;\r\n    }\r\n\r\n    .elementor-content-button {\r\n      padding: 0.7rem 1.6rem !important;\r\n      font-size: 0.9rem !important;\r\n      letter-spacing: 0.3px !important;\r\n      min-height: 44px !important;\r\n      min-width: 110px !important;\r\n    }\r\n\r\n    .elementor-pagination {\r\n      bottom: 1.5rem !important;\r\n      gap: 1.8rem !important;\r\n    }\r\n\r\n    .elementor-pagination-dot {\r\n      width: 10px !important;\r\n      height: 10px !important;\r\n      position: relative !important;\r\n    }\r\n    \r\n    .elementor-pagination-dot::before {\r\n      content: '' !important;\r\n      position: absolute !important;\r\n      top: -15px !important;\r\n      left: -15px !important;\r\n      right: -15px !important;\r\n      bottom: -15px !important;\r\n    }\r\n  }\r\n\r\n  \/* Tablet optimization *\/\r\n  @media screen and (max-width: 1199px) and (min-width: 769px) {\r\n    .elementor-carousel-container {\r\n      width: 100vw !important;\r\n      max-width: none !important;\r\n      margin-left: calc(-50vw + 50%) !important;\r\n      margin-right: calc(-50vw + 50%) !important;\r\n      left: 0 !important;\r\n      right: 0 !important;\r\n    }\r\n\r\n    .elementor-nav-button {\r\n      display: none !important;\r\n    }\r\n\r\n    .elementor-content-inner {\r\n      max-width: 700px !important;\r\n      padding: 2.5rem !important;\r\n    }\r\n    \r\n    .elementor-content-subtitle {\r\n      font-size: clamp(1.2rem, 2.5vw, 1.4rem) !important;\r\n      margin-bottom: 2.5rem !important;\r\n    }\r\n    \r\n    .elementor-content-button {\r\n      padding: 0.9rem 2.2rem !important;\r\n      font-size: 1rem !important;\r\n    }\r\n    \r\n    .elementor-pagination {\r\n      bottom: 2.5rem !important;\r\n      gap: 1.3rem !important;\r\n    }\r\n  }\r\n\r\n  \/* Desktop optimization *\/\r\n  @media screen and (min-width: 1200px) {\r\n    .elementor-carousel-container {\r\n      width: 100vw !important;\r\n      max-width: none !important;\r\n      margin-left: calc(-50vw + 50%) !important;\r\n      margin-right: calc(-50vw + 50%) !important;\r\n      left: 0 !important;\r\n      right: 0 !important;\r\n    }\r\n\r\n    .elementor-content-inner {\r\n      max-width: 900px !important;\r\n      padding: 3rem !important;\r\n    }\r\n    \r\n    .elementor-content-subtitle {\r\n      font-size: 2rem !important;\r\n      margin-bottom: 3rem !important;\r\n    }\r\n    \r\n    .elementor-content-button {\r\n      padding: 1rem 2.5rem !important;\r\n      font-size: 1.1rem !important;\r\n    }\r\n    \r\n    .elementor-nav-button {\r\n      width: 70px !important;\r\n      height: 70px !important;\r\n      font-size: 1.4rem !important;\r\n    }\r\n    \r\n    .elementor-nav-prev {\r\n      left: 4rem !important;\r\n    }\r\n    \r\n    .elementor-nav-next {\r\n      right: 4rem !important;\r\n    }\r\n    \r\n    .elementor-pagination {\r\n      bottom: 4rem !important;\r\n      gap: 2rem !important;\r\n    }\r\n    \r\n    .elementor-pagination-dot {\r\n      width: 14px !important;\r\n      height: 14px !important;\r\n    }\r\n  }\r\n\r\n  \/* Touch device optimization *\/\r\n  @media (hover: none) and (pointer: coarse) {\r\n    .elementor-content-button:hover {\r\n      transform: none !important;\r\n      background: rgba(255,255,255,0.2) !important;\r\n      border-color: rgba(255,255,255,0.5) !important;\r\n    }\r\n    \r\n    .elementor-pagination-dot:hover {\r\n      transform: none !important;\r\n      background: rgba(255,255,255,0.3) !important;\r\n    }\r\n\r\n    .elementor-pagination-dot.active:hover {\r\n      background: white !important;\r\n      transform: scale(1.2) !important;\r\n    }\r\n  }\r\n\r\n  \/* \u989d\u5916\u7684\u5168\u5c4f\u5f3a\u5236\u89c4\u5219 *\/\r\n  .elementor-carousel-container {\r\n    \/* \u6e05\u9664\u4efb\u4f55\u53ef\u80fd\u7684\u8fb9\u8ddd\u548c\u586b\u5145 *\/\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    \r\n    \/* \u5f3a\u5236\u5360\u6ee1\u6574\u4e2a\u89c6\u53e3\u5bbd\u5ea6 *\/\r\n    position: relative !important;\r\n    width: 100vw !important;\r\n    min-width: 100vw !important;\r\n    max-width: none !important;\r\n    \r\n    \/* \u9632\u6b62\u88ab\u7236\u7ea7\u5bb9\u5668\u7ea6\u675f *\/\r\n    margin-left: calc(-50vw + 50%) !important;\r\n    margin-right: calc(-50vw + 50%) !important;\r\n    \r\n    \/* \u786e\u4fdd\u5728\u4efb\u4f55\u5bb9\u5668\u4e2d\u90fd\u80fd\u7a81\u7834\u9650\u5236 *\/\r\n    left: 0 !important;\r\n    right: 0 !important;\r\n    \r\n    \/* \u9632\u6b62\u6c34\u5e73\u6eda\u52a8 *\/\r\n    overflow-x: hidden !important;\r\n  }\r\n\r\n  \/* \u9632\u6b62\u7236\u7ea7\u5bb9\u5668\u5f71\u54cd *\/\r\n  .elementor-carousel-container * {\r\n    box-sizing: border-box !important;\r\n  }\r\n<\/style>\r\n\r\n<div class=\"elementor-carousel-container\">\r\n  <div class=\"elementor-carousel\">\r\n    <div class=\"elementor-carousel-slide active\">\r\n      <img src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/banner1.avif\" alt=\"wooden educational toys Slide 1\" fetchpriority=\"high\" decoding=\"async\" title=\"\">\r\n      <div class=\"elementor-carousel-content\">\r\n        <div class=\"elementor-content-inner\">\r\n          <p class=\"elementor-content-subtitle\">Science Technology Arts Mathematics<\/p>\r\n          <a href=\"https:\/\/sing2sky.com\/ru\/%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b\/\" class=\"elementor-content-button\">View More<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"elementor-carousel-slide\">\r\n      <img src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/banner-_1.webp\" alt=\"wooden educational toys Slide 2\" loading=\"lazy\" decoding=\"async\" title=\"\">\r\n      <div class=\"elementor-carousel-content\">\r\n        <div class=\"elementor-content-inner\">\r\n          <p class=\"elementor-content-subtitle\">Skills Through Interdisciplinary Learning<\/p>\r\n          <a href=\"https:\/\/sing2sky.com\/ru\/%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b\/\" class=\"elementor-content-button\">Learn More<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"elementor-carousel-slide\">\r\n      <img src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/banner-03.webp\" alt=\"wooden educational toys Slide 3\" loading=\"lazy\" decoding=\"async\" title=\"\">\r\n      <div class=\"elementor-carousel-content\">\r\n        <div class=\"elementor-content-inner\">\r\n          <p class=\"elementor-content-subtitle\">Real Projects Inspire Creativity<\/p>\r\n          <a href=\"https:\/\/sing2sky.com\/ru\/%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b\/\" class=\"elementor-content-button\">Start Experience<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"elementor-carousel-slide\">\r\n      <img src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/banner-_4.webp\" alt=\"wooden educational toys Slide 4\" loading=\"lazy\" decoding=\"async\" title=\"\">\r\n      <div class=\"elementor-carousel-content\">\r\n        <div class=\"elementor-content-inner\">\r\n          <p class=\"elementor-content-subtitle\">Teamwork Spirit Achieves Growth<\/p>\r\n          <a href=\"https:\/\/sing2sky.com\/ru\/%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b\/\" class=\"elementor-content-button\">Join Us<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"elementor-carousel-slide\">\r\n      <img src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/banner-_3.webp\" alt=\"wooden educational toys Slide 5\" loading=\"lazy\" decoding=\"async\" title=\"\">\r\n      <div class=\"elementor-carousel-content\">\r\n        <div class=\"elementor-content-inner\">\r\n          <p class=\"elementor-content-subtitle\">Future Education Infinite Possibilities<\/p>\r\n          <a href=\"https:\/\/sing2sky.com\/ru\/%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b\/\" class=\"elementor-content-button\">Explore Future<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"elementor-carousel-slide\">\r\n      <img src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/banner-06.webp\" alt=\"wooden educational toys Slide 6\" loading=\"lazy\" decoding=\"async\" title=\"\">\r\n      <div class=\"elementor-carousel-content\">\r\n        <div class=\"elementor-content-inner\">\r\n          <p class=\"elementor-content-subtitle\">Innovation Learning Limitless Potential<\/p>\r\n          <a href=\"https:\/\/sing2sky.com\/ru\/%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b\/\" class=\"elementor-content-button\">Discover More<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Clone first slide for seamless loop -->\r\n    <div class=\"elementor-carousel-slide\">\r\n      <img src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/banner1.avif\" alt=\"STEAM Education Slide 1\" loading=\"lazy\" decoding=\"async\" title=\"\">\r\n      <div class=\"elementor-carousel-content\">\r\n        <div class=\"elementor-content-inner\">\r\n          <p class=\"elementor-content-subtitle\">Science Technology Arts Mathematics<\/p>\r\n          <a href=\"https:\/\/sing2sky.com\/ru\/%d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b\/\" class=\"elementor-content-button\">View More<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Desktop navigation buttons -->\r\n  <button class=\"elementor-nav-button elementor-nav-prev\" onclick=\"elementorPrevSlide()\">\u2039<\/button>\r\n  <button class=\"elementor-nav-button elementor-nav-next\" onclick=\"elementorNextSlide()\">\u203a<\/button>\r\n\r\n  <div class=\"elementor-pagination\">\r\n    <div class=\"elementor-pagination-dot active\" onclick=\"elementorGoToSlide(0)\"><\/div>\r\n    <div class=\"elementor-pagination-dot\" onclick=\"elementorGoToSlide(1)\"><\/div>\r\n    <div class=\"elementor-pagination-dot\" onclick=\"elementorGoToSlide(2)\"><\/div>\r\n    <div class=\"elementor-pagination-dot\" onclick=\"elementorGoToSlide(3)\"><\/div>\r\n    <div class=\"elementor-pagination-dot\" onclick=\"elementorGoToSlide(4)\"><\/div>\r\n    <div class=\"elementor-pagination-dot\" onclick=\"elementorGoToSlide(5)\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n  let elementorCurrentSlide = 0;\r\n  const elementorSlides = document.querySelectorAll('.elementor-carousel-slide');\r\n  const elementorDots = document.querySelectorAll('.elementor-pagination-dot');\r\n  const elementorTotalSlides = 6; \/\/ 6 actual slides\r\n  let elementorIsTransitioning = false;\r\n  \r\n  function elementorGetSlideWidth() {\r\n    const container = document.querySelector('.elementor-carousel-container');\r\n    return container.offsetWidth;\r\n  }\r\n  \r\n  function elementorUpdateCarousel(instant = false) {\r\n    if (elementorIsTransitioning && !instant) return;\r\n    elementorIsTransitioning = true;\r\n\r\n    const carousel = document.querySelector('.elementor-carousel');\r\n    const slideWidth = elementorGetSlideWidth();\r\n    \r\n    \/\/ Set transition effect\r\n    if (instant) {\r\n      carousel.style.transition = 'none';\r\n    } else {\r\n      carousel.style.transition = 'transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94)';\r\n    }\r\n    \r\n    \/\/ Update carousel position\r\n    const translateX = -elementorCurrentSlide * slideWidth;\r\n    carousel.style.transform = `translate3d(${translateX}px, 0, 0)`;\r\n    \r\n    \/\/ Update active state (only for first 6 slides)\r\n    elementorSlides.forEach((slide, index) => {\r\n      if (index < elementorTotalSlides) {\r\n        slide.classList.toggle('active', index === (elementorCurrentSlide % elementorTotalSlides));\r\n      }\r\n    });\r\n    \r\n    \/\/ Update pagination\r\n    elementorDots.forEach((dot, index) => {\r\n      dot.classList.toggle('active', index === (elementorCurrentSlide % elementorTotalSlides));\r\n    });\r\n\r\n    \/\/ Prevent rapid switching\r\n    if (!instant) {\r\n      setTimeout(() => {\r\n        elementorIsTransitioning = false;\r\n      }, 1000);\r\n    } else {\r\n      elementorIsTransitioning = false;\r\n    }\r\n  }\r\n\r\n  window.elementorNextSlide = function() {\r\n    if (elementorIsTransitioning) return;\r\n    \r\n    elementorCurrentSlide++;\r\n    elementorUpdateCarousel();\r\n    \r\n    \/\/ If reaching cloned slide, seamlessly jump back to first\r\n    if (elementorCurrentSlide === elementorTotalSlides) {\r\n      setTimeout(() => {\r\n        elementorCurrentSlide = 0;\r\n        elementorUpdateCarousel(true);\r\n      }, 1000);\r\n    }\r\n  };\r\n\r\n  window.elementorPrevSlide = function() {\r\n    if (elementorIsTransitioning) return;\r\n    \r\n    if (elementorCurrentSlide === 0) {\r\n      \/\/ If on first slide, jump to clone position first\r\n      elementorCurrentSlide = elementorTotalSlides;\r\n      elementorUpdateCarousel(true);\r\n      setTimeout(() => {\r\n        elementorCurrentSlide = elementorTotalSlides - 1;\r\n        elementorUpdateCarousel();\r\n      }, 50);\r\n    } else {\r\n      elementorCurrentSlide--;\r\n      elementorUpdateCarousel();\r\n    }\r\n  };\r\n\r\n  window.elementorGoToSlide = function(index) {\r\n    if (index !== (elementorCurrentSlide % elementorTotalSlides) && !elementorIsTransitioning) {\r\n      elementorCurrentSlide = index;\r\n      elementorUpdateCarousel();\r\n    }\r\n  };\r\n\r\n  \/\/ Responsive handling\r\n  let elementorResizeTimeout;\r\n  window.addEventListener('resize', () => {\r\n    clearTimeout(elementorResizeTimeout);\r\n    elementorResizeTimeout = setTimeout(() => {\r\n      elementorUpdateCarousel(true);\r\n    }, 100);\r\n  });\r\n\r\n  \/\/ Touch swipe logic\r\n  let elementorTouchStartX = 0;\r\n  let elementorTouchEndX = 0;\r\n  let elementorTouchStartY = 0;\r\n  let elementorHasMovedHorizontally = false;\r\n  let elementorTouchStartTime = 0;\r\n\r\n  const elementorContainer = document.querySelector('.elementor-carousel-container');\r\n\r\n  elementorContainer.addEventListener('touchstart', (e) => {\r\n    if (elementorIsTransitioning) return;\r\n    \r\n    elementorTouchStartX = e.touches[0].clientX;\r\n    elementorTouchStartY = e.touches[0].clientY;\r\n    elementorTouchStartTime = Date.now();\r\n    elementorHasMovedHorizontally = false;\r\n  }, { passive: true });\r\n\r\n  elementorContainer.addEventListener('touchmove', (e) => {\r\n    if (elementorIsTransitioning) return;\r\n    \r\n    const touchCurrentX = e.touches[0].clientX;\r\n    const touchCurrentY = e.touches[0].clientY;\r\n    const deltaX = Math.abs(touchCurrentX - elementorTouchStartX);\r\n    const deltaY = Math.abs(touchCurrentY - elementorTouchStartY);\r\n    \r\n    if (deltaX > 8 || deltaY > 8) {\r\n      if (deltaX > deltaY * 1.2) {\r\n        elementorHasMovedHorizontally = true;\r\n        e.preventDefault();\r\n      } else if (deltaY > deltaX * 1.5) {\r\n        elementorHasMovedHorizontally = false;\r\n      }\r\n    }\r\n  }, { passive: false });\r\n\r\n  elementorContainer.addEventListener('touchend', (e) => {\r\n    if (elementorIsTransitioning) return;\r\n    \r\n    elementorTouchEndX = e.changedTouches[0].clientX;\r\n    const deltaX = elementorTouchStartX - elementorTouchEndX;\r\n    const touchDuration = Date.now() - elementorTouchStartTime;\r\n    \r\n    const slideWidth = elementorGetSlideWidth();\r\n    const minSwipeDistance = slideWidth * 0.15;\r\n    const maxSwipeTime = 600;\r\n    \r\n    if (elementorHasMovedHorizontally && \r\n        Math.abs(deltaX) > minSwipeDistance && \r\n        touchDuration < maxSwipeTime) {\r\n      \r\n      if (deltaX > 0) {\r\n        elementorNextSlide();\r\n      } else {\r\n        elementorPrevSlide();\r\n      }\r\n    }\r\n    \r\n    elementorHasMovedHorizontally = false;\r\n  }, { passive: true });\r\n\r\n  \/\/ Prevent image dragging\r\n  document.querySelectorAll('.elementor-carousel-slide img').forEach(img => {\r\n    img.addEventListener('dragstart', (e) => {\r\n      e.preventDefault();\r\n    });\r\n  });\r\n\r\n  \/\/ Initialize\r\n  elementorUpdateCarousel(true);\r\n  \r\n  \/\/ Ensure re-initialization after page load\r\n  window.addEventListener('load', () => {\r\n    setTimeout(() => {\r\n      elementorUpdateCarousel(true);\r\n    }, 100);\r\n  });\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-47d3768 e-flex e-con-boxed e-con e-parent\" data-id=\"47d3768\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-64cda05 elementor-widget elementor-widget-html\" data-id=\"64cda05\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>.support-section {\r\n  width: 100%;\r\n  background: #ffffff;\r\n  padding: 80px 20px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n.content-wrapper {\r\n  max-width: 1400px;\r\n  width: 100%;\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 100px;\r\n}\r\n.left-content {\r\n  flex: 1.2;\r\n  max-width: 550px;\r\n}\r\n.right-content {\r\n  flex: 1;\r\n  max-width: 600px;\r\n}\r\n.title {\r\n  font-size: 48px;\r\n  font-weight: 700;\r\n  margin: 0 0 40px 0;\r\n  line-height: 1.2;\r\n  color: #1a1a1a;\r\n  letter-spacing: -0.02em;\r\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n}\r\n.description {\r\n  font-size: 18px;\r\n  color: #4a5568;\r\n  line-height: 1.7;\r\n  margin: 0;\r\n  font-weight: 400;\r\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n}\r\n.highlight {\r\n  color: #2563eb;\r\n  font-weight: 600;\r\n}\r\n.feature-badge {\r\n  display: inline-block;\r\n  background: #e0f2fe;\r\n  color: #0369a1;\r\n  padding: 4px 12px;\r\n  border-radius: 20px;\r\n  font-size: 14px;\r\n  font-weight: 600;\r\n  margin: 0 8px 8px 0;\r\n}\r\n.stats-container {\r\n  margin: 20px 0;\r\n  display: flex;\r\n  flex-wrap: wrap;\r\n  gap: 15px;\r\n}\r\n\/* Tablet styles *\/\r\n@media screen and (max-width: 1024px) {\r\n  .support-section {\r\n    padding: 60px 20px;\r\n  }\r\n  \r\n  .content-wrapper {\r\n    gap: 60px;\r\n  }\r\n  \r\n  .title {\r\n    font-size: 42px;\r\n    margin-bottom: 30px;\r\n  }\r\n  \r\n  .description {\r\n    font-size: 16px;\r\n  }\r\n}\r\n\/* Mobile styles *\/\r\n@media screen and (max-width: 768px) {\r\n  .support-section {\r\n    padding: 50px 20px;\r\n  }\r\n  \r\n  .content-wrapper {\r\n    flex-direction: column;\r\n    gap: 40px;\r\n    text-align: center;\r\n  }\r\n  \r\n  .left-content,\r\n  .right-content {\r\n    max-width: 100%;\r\n  }\r\n  \r\n  .title {\r\n    font-size: 36px;\r\n    margin-bottom: 25px;\r\n    line-height: 1.3;\r\n  }\r\n  \r\n  .description {\r\n    font-size: 16px;\r\n    line-height: 1.6;\r\n  }\r\n  \r\n  .stats-container {\r\n    justify-content: center;\r\n  }\r\n}\r\n\/* Small mobile styles *\/\r\n@media screen and (max-width: 480px) {\r\n  .support-section {\r\n    padding: 40px 15px;\r\n  }\r\n  \r\n  .content-wrapper {\r\n    gap: 30px;\r\n  }\r\n  \r\n  .title {\r\n    font-size: 28px;\r\n    margin-bottom: 20px;\r\n  }\r\n  \r\n  .description {\r\n    font-size: 15px;\r\n    line-height: 1.6;\r\n  }\r\n}\r\n\/* Very small screens *\/\r\n@media screen and (max-width: 360px) {\r\n  .title {\r\n    font-size: 24px;\r\n  }\r\n  \r\n  .description {\r\n    font-size: 14px;\r\n  }\r\n}\r\n<\/style><div class=\"support-section\"><div class=\"content-wrapper\"><div class=\"left-content\"><h1 class=\"title\">Science Technology<br\/>Engineering Mathematics<\/h1><\/div><div class=\"right-content\"><p class=\"description\">Premium wooden educational toys engineered to foster STEM learning and critical thinking in young minds. Our ISO-certified 25,000 m\u00b2 facility produces precision-crafted building blocks, sports equipment, and interactive materials that inspire discovery. Backed by 100+ patents and CE\/ASTM\/EN71 certifications, these solutions deliver uncompromising quality for leading ECE institutions worldwide.<\/p><\/div><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6241463 e-flex e-con-boxed e-con e-parent\" data-id=\"6241463\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-970d9c2 elementor-widget elementor-widget-video\" data-id=\"970d9c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/eoVBq_M-B-A&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-626a7b2 e-flex e-con-boxed e-con e-parent\" data-id=\"626a7b2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d0fdf3e elementor-widget elementor-widget-html\" data-id=\"d0fdf3e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Sing2Sky Statistics Section - Elementor HTML Widget -->\r\n<div class=\"sing2sky-stats-section\">\r\n    <div class=\"stats-container\">\r\n        <div class=\"stat-card\" data-delay=\"0\">\r\n            <div class=\"stat-number\" data-target=\"25000\" data-suffix=\"  m\u00b2\" aria-label=\"Factory area\">0<\/div>\r\n            <p class=\"stat-description\">\u041f\u043b\u043e\u0449\u0430\u0434\u044c \u0437\u0430\u0432\u043e\u0434\u0430 25 000 \u043c\u00b2, \u043e\u0441\u043d\u0430\u0449\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0435\u0439.<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"stat-card\" data-delay=\"200\">\r\n            <div class=\"stat-number\" data-target=\"19\" data-suffix=\"  Years\" aria-label=\"Years of experience\">0<\/div>\r\n            <p class=\"stat-description\">\u0411\u043e\u043b\u0435\u0435 19 \u043b\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u044f\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0445 \u0438\u0433\u0440\u0443\u0448\u043a\u0430\u0445.<\/p>\r\n        <\/div>\r\n        <div class=\"stat-card\" data-delay=\"400\">\r\n            <div class=\"stat-number\" data-target=\"100000\" data-suffix=\"+\" aria-label=\"Preschool institutions served\">0<\/div>\r\n            <p class=\"stat-description\">\u0411\u043e\u043b\u0435\u0435 100 000 \u0434\u043e\u0448\u043a\u043e\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0443\u0447\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 Sing2Sky.<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"stat-card\" data-delay=\"600\">\r\n            <div class=\"stat-number\" data-target=\"100\" data-suffix=\"+\" aria-label=\"Patented products\">0<\/div>\r\n            <p class=\"stat-description\">100+ \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0430\u0442\u0435\u043d\u0442\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432.<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"stat-card\" data-delay=\"800\">\r\n            <div class=\"stat-number\" data-target=\"500\" data-suffix=\"+ Stock\" aria-label=\"Stock products\">0<\/div>\r\n            <p class=\"stat-description\">500+ \u041f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435.<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"stat-card certifications-card\" data-delay=\"1000\">\r\n            <div class=\"certifications-title\">\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/div>\r\n            <div class=\"certifications-image-container\">\r\n                <div class=\"image-placeholder\" id=\"sing2sky-placeholder\">\r\n                    <div class=\"loading-spinner\" aria-hidden=\"true\"><\/div>\r\n                    <span>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432...<\/span>\r\n                <\/div>\r\n                <img decoding=\"async\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/09\/Company-Certifications-e1757659198754.jpg\" alt=\"\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Sing2Sky, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b ISO 9001, CE, FSC, CPSIA \u0438 ASTM\" class=\"certifications-image\" id=\"sing2sky-cert-img\" loading=\"lazy\" width=\"350\" height=\"100\" title=\"\">\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<style>\r\n\/* Scoped styles for Sing2Sky Stats Section *\/\r\n.sing2sky-stats-section {\r\n    width: 100%;\r\n    padding: 2rem 0;\r\n}\r\n\r\n.sing2sky-stats-section * {\r\n    box-sizing: border-box;\r\n}\r\n\r\n.sing2sky-stats-section .stats-container {\r\n    max-width: 1200px;\r\n    margin: 0 auto;\r\n    display: grid;\r\n    gap: clamp(20px, 3vw, 30px);\r\n    padding: 0 clamp(10px, 2vw, 20px);\r\n}\r\n\r\n.sing2sky-stats-section .stat-card {\r\n    background: #fff;\r\n    border: 4px solid #ddd;\r\n    border-radius: 20px;\r\n    padding: clamp(20px, 4vw, 40px) clamp(15px, 3vw, 30px);\r\n    text-align: center;\r\n    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\r\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\r\n    display: flex;\r\n    flex-direction: column;\r\n    justify-content: center;\r\n    align-items: center;\r\n    opacity: 0;\r\n    transform: translateY(30px);\r\n    height: 200px;\r\n}\r\n\r\n.sing2sky-stats-section .stat-card.animate {\r\n    animation: sing2skyFadeInUp 0.8s ease forwards;\r\n}\r\n\r\n.sing2sky-stats-section .stat-card:hover {\r\n    transform: translateY(-5px);\r\n    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n@keyframes sing2skyFadeInUp {\r\n    to {\r\n        opacity: 1;\r\n        transform: translateY(0);\r\n    }\r\n}\r\n\r\n.sing2sky-stats-section .stat-number {\r\n    font-size: clamp(28px, 6vw, 48px);\r\n    font-weight: 700;\r\n    color: #333;\r\n    margin-bottom: clamp(8px, 2vw, 15px);\r\n    line-height: 1.2;\r\n    font-variant-numeric: tabular-nums;\r\n    font-family: inherit;\r\n}\r\n\r\n.sing2sky-stats-section .stat-description {\r\n    font-size: clamp(14px, 1.8vw, 16px);\r\n    color: #333;\r\n    line-height: 1.5;\r\n    max-width: 280px;\r\n    margin: 0;\r\n    font-family: inherit;\r\n}\r\n\r\n.sing2sky-stats-section .certifications-card {\r\n    height: 200px !important;\r\n    gap: clamp(10px, 2vw, 15px);\r\n}\r\n\r\n.sing2sky-stats-section .certifications-title {\r\n    font-size: clamp(24px, 4.5vw, 36px);\r\n    font-weight: 700;\r\n    color: #333;\r\n    margin: 0 0 clamp(5px, 1.5vw, 10px) 0;\r\n    font-family: inherit;\r\n}\r\n\r\n.sing2sky-stats-section .certifications-image-container {\r\n    width: clamp(200px, 35vw, 350px);\r\n    height: clamp(60px, 10vw, 100px);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    background: #fff;\r\n    border-radius: 10px;\r\n    padding: clamp(5px, 1vw, 8px);\r\n    position: relative;\r\n}\r\n\r\n.sing2sky-stats-section .certifications-image {\r\n    max-width: 100%;\r\n    max-height: 100%;\r\n    border-radius: 10px;\r\n    opacity: 0;\r\n    transform: scale(0.8);\r\n    transition: all 0.6s ease;\r\n}\r\n\r\n.sing2sky-stats-section .certifications-image.loaded {\r\n    opacity: 1;\r\n    transform: scale(1);\r\n}\r\n\r\n.sing2sky-stats-section .image-placeholder {\r\n    position: absolute;\r\n    color: #666;\r\n    font-size: 14px;\r\n    text-align: center;\r\n    transition: opacity 0.3s ease;\r\n    font-family: inherit;\r\n}\r\n\r\n.sing2sky-stats-section .image-placeholder.hidden {\r\n    opacity: 0;\r\n}\r\n\r\n.sing2sky-stats-section .loading-spinner {\r\n    border: 2px solid #f3f3f3;\r\n    border-top: 2px solid #3498db;\r\n    border-radius: 50%;\r\n    width: 24px;\r\n    height: 24px;\r\n    animation: sing2skySpin 1s linear infinite;\r\n    margin: 0 auto 10px;\r\n}\r\n\r\n@keyframes sing2skySpin {\r\n    0% { transform: rotate(0deg); }\r\n    100% { transform: rotate(360deg); }\r\n}\r\n\r\n\/* Responsive grid *\/\r\n@media (max-width: 600px) {\r\n    .sing2sky-stats-section .stats-container {\r\n        grid-template-columns: 1fr;\r\n    }\r\n}\r\n\r\n@media (min-width: 601px) and (max-width: 1024px) {\r\n    .sing2sky-stats-section .stats-container {\r\n        grid-template-columns: repeat(2, 1fr);\r\n    }\r\n}\r\n\r\n@media (min-width: 1025px) {\r\n    .sing2sky-stats-section .stats-container {\r\n        grid-template-columns: repeat(3, 1fr);\r\n    }\r\n}\r\n\r\n\/* Mobile optimizations *\/\r\n@media (max-width: 374px) {\r\n    .sing2sky-stats-section {\r\n        padding: 1rem 0;\r\n    }\r\n    .sing2sky-stats-section .stat-card {\r\n        height: 140px;\r\n        padding: 12px 8px;\r\n        border-radius: 12px;\r\n    }\r\n    .sing2sky-stats-section .certifications-card {\r\n        height: 140px !important;\r\n    }\r\n    .sing2sky-stats-section .stat-number {\r\n        font-size: 20px;\r\n        margin-bottom: 6px;\r\n    }\r\n    .sing2sky-stats-section .stat-description {\r\n        font-size: 11px;\r\n        max-width: 220px;\r\n    }\r\n    .sing2sky-stats-section .certifications-title {\r\n        font-size: 16px;\r\n    }\r\n    .sing2sky-stats-section .certifications-image-container {\r\n        width: 150px;\r\n        height: 40px;\r\n    }\r\n}\r\n\r\n@media (min-width: 1201px) {\r\n    .sing2sky-stats-section .stat-card {\r\n        height: 240px;\r\n        padding: 32px 25px;\r\n    }\r\n    .sing2sky-stats-section .certifications-card {\r\n        height: 240px !important;\r\n    }\r\n    .sing2sky-stats-section .certifications-image-container {\r\n        width: 320px;\r\n        height: 95px;\r\n    }\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function() {\r\n    'use strict';\r\n    \r\n    \/\/ Avoid global pollution, ensure it only runs within the current component\r\n    const statsSection = document.querySelector('.sing2sky-stats-section');\r\n    if (!statsSection || statsSection.dataset.initialized) return;\r\n    \r\n    statsSection.dataset.initialized = 'true';\r\n    \r\n    \/\/ Number animation function\r\n    const animateNumber = (el, target, duration = 2000, suffix = '') => {\r\n        const startTime = performance.now();\r\n        const update = (currentTime) => {\r\n            const progress = Math.min((currentTime - startTime) \/ duration, 1);\r\n            const eased = 1 - Math.pow(1 - progress, 4);\r\n            const current = Math.floor(eased * target);\r\n            el.textContent = current.toLocaleString() + suffix;\r\n            progress < 1 ? requestAnimationFrame(update) : null;\r\n        };\r\n        requestAnimationFrame(update);\r\n    };\r\n\r\n    \/\/ Image loading handler\r\n    const handleImageLoad = () => {\r\n        const img = statsSection.querySelector('#sing2sky-cert-img');\r\n        const placeholder = statsSection.querySelector('#sing2sky-placeholder');\r\n        \r\n        if (!img || !placeholder) return;\r\n        \r\n        const preload = new Image();\r\n        preload.onload = () => {\r\n            placeholder.classList.add('hidden');\r\n            img.classList.add('loaded');\r\n        };\r\n        preload.onerror = () => {\r\n            placeholder.innerHTML = '<div style=\"color:#e74c3c;font-size:12px\">Failed to load image<\/div>';\r\n        };\r\n        preload.src = img.src;\r\n    };\r\n\r\n    \/\/ Intersection Observer\r\n    const observer = new IntersectionObserver((entries) => {\r\n        entries.forEach(entry => {\r\n            if (entry.isIntersecting && !entry.target.hasAttribute('data-animated')) {\r\n                const card = entry.target;\r\n                const delay = +card.dataset.delay || 0;\r\n                \r\n                card.setAttribute('data-animated', 'true');\r\n                \r\n                setTimeout(() => {\r\n                    card.classList.add('animate');\r\n                    \r\n                    const numberEl = card.querySelector('.stat-number[data-target]');\r\n                    if (numberEl) {\r\n                        setTimeout(() => {\r\n                            animateNumber(numberEl, +numberEl.dataset.target, 2000, numberEl.dataset.suffix || '');\r\n                        }, 300);\r\n                    }\r\n                    \r\n                    if (card.classList.contains('certifications-card')) {\r\n                        handleImageLoad();\r\n                    }\r\n                }, delay);\r\n            }\r\n        });\r\n    }, { threshold: 0.3, rootMargin: '0px 0px -50px 0px' });\r\n\r\n    \/\/ Initialize observer\r\n    statsSection.querySelectorAll('.stat-card').forEach(card => observer.observe(card));\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-488587b e-con-full e-flex e-con e-parent\" data-id=\"488587b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-82686a2 elementor-widget elementor-widget-html\" data-id=\"82686a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Sing2Sky Products Section - Elementor HTML Widget -->\r\n<div class=\"sing2sky-products-section\">\r\n    <h2 class=\"products-title\">\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0421\u0435\u0431\u044f \u041d\u0430\u0448\u0438 \u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438<\/h2>\r\n    <div class=\"products-grid\">\r\n        <div class=\"product-card\">\r\n            <h3>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e-\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u0432<\/h3>\r\n            <img decoding=\"async\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/09\/Tabletop-Micro-Architects-Collection-Homepage-e1757662421675.jpg\" alt=\"\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u00ab\u041d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0435 \u041c\u0438\u043a\u0440\u043e-\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u044b\u00bb - \u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0434\u043b\u044f \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\" loading=\"lazy\" width=\"275\" height=\"275\" title=\"\">\r\n            <p>\u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0434\u043b\u044f \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\r\n            <a href=\"http:\/\/sing2sky.com\/tabletop-micro-architects-collection\/\" aria-label=\"Learn more about Tabletop Micro-Architects Collection\">\u0423\u0437\u043d\u0430\u0442\u044c \u0411\u043e\u043b\u044c\u0448\u0435<\/a>\r\n        <\/div>\r\n        \r\n        <div class=\"product-card\">\r\n            <h3>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432-\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0439<\/h3>\r\n            <img decoding=\"async\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/09\/Indoor-Structural-Engineers-System-Homepage-e1757662301754.jpg\" alt=\"\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u00ab\u0418\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u043d\u044b\u0435 \u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b-\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b\u00bb - \u041f\u0435\u0440\u0435\u0434\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b\" loading=\"lazy\" width=\"275\" height=\"275\" title=\"\">\r\n            <p>\u041f\u0435\u0440\u0435\u0434\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b<\/p>\r\n            <a href=\"http:\/\/sing2sky.com\/indoor-structural-engineers-system\/\" aria-label=\"Learn more about Indoor Structural Engineers System\">\u0423\u0437\u043d\u0430\u0442\u044c \u0411\u043e\u043b\u044c\u0448\u0435<\/a>\r\n        <\/div>\r\n        \r\n        <div class=\"product-card\">\r\n            <h3>\u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u0438\u044f \u0438\u0437 \u043e\u0431\u0443\u0433\u043b\u0435\u043d\u043d\u043e\u0439 \u0434\u0440\u0435\u0432\u0435\u0441\u0438\u043d\u044b<\/h3>\r\n            <img decoding=\"async\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/09\/Charred-Wood-Heritage-Builders-Homepage-e1757662135904.jpg\" alt=\"\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b \u00ab\u041d\u0430\u0441\u043b\u0435\u0434\u0438\u0435 \u041e\u0431\u043e\u0436\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0414\u0435\u0440\u0435\u0432\u0430\u00bb - \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u043c\u0430\u0441\u0442\u0435\u0440\u0441\u0442\u0432\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0433\u0440\u043e\u0439\" loading=\"lazy\" width=\"275\" height=\"275\" title=\"\">\r\n            <p>\u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u043c\u0430\u0441\u0442\u0435\u0440\u0441\u0442\u0432\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0433\u0440\u043e\u0439<\/p>\r\n            <a href=\"http:\/\/sing2sky.com\/charred-wood-heritage-builders\/\" aria-label=\"Learn more about Charred Wood Heritage Builders\">\u0423\u0437\u043d\u0430\u0442\u044c \u0411\u043e\u043b\u044c\u0448\u0435<\/a>\r\n        <\/div>\r\n        \r\n        <div class=\"product-card\">\r\n            <h3>\u0418\u0433\u0440\u043e\u0432\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043e\u0442\u0434\u044b\u0445\u0430 \u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u043e\u0437\u0434\u0443\u0445\u0435<\/h3>\r\n            <img decoding=\"async\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/09\/Outdoor-Open-Active-Playsets-Homepage-e1757662376400.jpg\" alt=\"\u0423\u043b\u0438\u0447\u043d\u044b\u0435 \u0418\u0433\u0440\u043e\u0432\u044b\u0435 \u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u044b Open-Active - \u0414\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u0435 \u0443\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438\" loading=\"lazy\" width=\"275\" height=\"275\" title=\"\">\r\n            <p>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u0435 \u0443\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\r\n            <a href=\"http:\/\/sing2sky.com\/outdoor-open-active-playsets\/\" aria-label=\"Learn more about Outdoor Open-Active Playsets\">\u0423\u0437\u043d\u0430\u0442\u044c \u0411\u043e\u043b\u044c\u0448\u0435<\/a>\r\n        <\/div>\r\n        \r\n        <div class=\"product-card\">\r\n            <h3>\u041c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 PRO \u0441 \u0431\u043e\u043b\u0442\u043e\u0432\u044b\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c<\/h3>\r\n            <img decoding=\"async\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/09\/Bolted-Mechanics-PRO-System-Homepage-e1757662024528.jpg\" alt=\"\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0411\u043e\u043b\u0442\u043e\u0432\u043e\u0439 \u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 PRO - \u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f STEM-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f\" loading=\"lazy\" width=\"275\" height=\"275\" title=\"\">\r\n            <p>\u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f STEM-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\r\n            <a href=\"http:\/\/sing2sky.com\/bolted-mechanics-pro-system\/\" aria-label=\"Learn more about Bolted Mechanics PRO System\">\u0423\u0437\u043d\u0430\u0442\u044c \u0411\u043e\u043b\u044c\u0448\u0435<\/a>\r\n        <\/div>\r\n        \r\n        <div class=\"product-card\">\r\n            <h3>\u0421\u0435\u0440\u0438\u044f \u0438\u0433\u0440 \u0441 \u043f\u0435\u0441\u043a\u043e\u043c \u0438 \u0432\u043e\u0434\u043e\u0439<\/h3>\r\n            <img decoding=\"async\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/09\/Hydro-Sensory-Exploration-Series-Homepage-e1757662205467.jpg\" alt=\"\u0421\u0435\u0440\u0438\u044f \u0418\u0433\u0440 \u0441 \u041f\u0435\u0441\u043a\u043e\u043c \u0438 \u0412\u043e\u0434\u043e\u0439 - \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0438\u0433\u0440 \u0441 \u0432\u043e\u0434\u043e\u0439 \u0438 \u043f\u0435\u0441\u043a\u043e\u043c\" loading=\"lazy\" width=\"275\" height=\"275\" title=\"\">\r\n            <p>\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0438\u0433\u0440 \u0441 \u0432\u043e\u0434\u043e\u0439 \u0438 \u043f\u0435\u0441\u043a\u043e\u043c<\/p>\r\n            <a href=\"https:\/\/sing2sky.com\/products\/sand-water-play-series\/\" aria-label=\"Learn more about Sand &amp; Water Play Series\">\u0423\u0437\u043d\u0430\u0442\u044c \u0411\u043e\u043b\u044c\u0448\u0435<\/a>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<style>\r\n\/* Scoped styles for Sing2Sky Products Section *\/\r\n.sing2sky-products-section {\r\n    width: 100%;\r\n    max-width: 1400px;\r\n    margin: 0 auto;\r\n    padding: 40px 20px;\r\n    background-color: #fff;\r\n    border-radius: 20px;\r\n    border: 2px solid #e0e0e0;\r\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);\r\n    box-sizing: border-box;\r\n}\r\n\r\n.sing2sky-products-section .products-title {\r\n    font-size: clamp(24px, 4vw, 36px);\r\n    font-weight: bold;\r\n    text-transform: uppercase;\r\n    color: #333;\r\n    margin: 0 0 40px 0;\r\n    text-align: center;\r\n    font-family: inherit;\r\n    line-height: 1.2;\r\n}\r\n\r\n.sing2sky-products-section .products-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n    gap: 20px;\r\n    justify-items: center;\r\n}\r\n\r\n.sing2sky-products-section .product-card {\r\n    background-color: #f9f9f9;\r\n    border-radius: 15px;\r\n    overflow: hidden;\r\n    text-align: center;\r\n    padding: 20px;\r\n    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\r\n    border: 1px solid #eeeeee;\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    max-width: 350px;\r\n    width: 100%;\r\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\r\n}\r\n\r\n.sing2sky-products-section .product-card:hover {\r\n    transform: translateY(-5px);\r\n    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n.sing2sky-products-section .product-card img {\r\n    width: 100%;\r\n    max-width: 275px;\r\n    height: 275px;\r\n    object-fit: contain;\r\n    margin-bottom: 15px;\r\n    border-radius: 10px;\r\n    transition: transform 0.3s ease;\r\n}\r\n\r\n.sing2sky-products-section .product-card:hover img {\r\n    transform: scale(1.05);\r\n}\r\n\r\n.sing2sky-products-section .product-card h3 {\r\n    font-size: clamp(16px, 2vw, 18px);\r\n    font-weight: bold;\r\n    color: #333;\r\n    margin: 0 0 15px 0;\r\n    text-align: center;\r\n    font-family: inherit;\r\n    line-height: 1.3;\r\n}\r\n\r\n.sing2sky-products-section .product-card p {\r\n    font-size: clamp(12px, 1.5vw, 14px);\r\n    color: #666;\r\n    margin: 0 0 15px 0;\r\n    text-align: center;\r\n    font-family: inherit;\r\n    line-height: 1.4;\r\n    flex-grow: 1;\r\n}\r\n\r\n.sing2sky-products-section .product-card a {\r\n    display: inline-block;\r\n    font-size: clamp(12px, 1.5vw, 14px);\r\n    color: #333;\r\n    text-decoration: none;\r\n    background-color: #f0f0f0;\r\n    border: 1px solid #ddd;\r\n    border-radius: 8px;\r\n    padding: 10px 18px;\r\n    text-transform: uppercase;\r\n    transition: all 0.3s ease;\r\n    font-family: inherit;\r\n    font-weight: 500;\r\n    margin-top: auto;\r\n}\r\n\r\n.sing2sky-products-section .product-card a:hover {\r\n    background-color: #e0e0e0;\r\n    border-color: #ccc;\r\n    color: #222;\r\n    transform: translateY(-2px);\r\n}\r\n\r\n.sing2sky-products-section .product-card a:focus {\r\n    outline: 2px solid #007cba;\r\n    outline-offset: 2px;\r\n}\r\n\r\n\/* Responsive adjustments *\/\r\n@media screen and (max-width: 480px) {\r\n    .sing2sky-products-section {\r\n        padding: 20px 15px;\r\n        border-radius: 15px;\r\n        border: 1px solid #e0e0e0;\r\n    }\r\n    \r\n    .sing2sky-products-section .products-title {\r\n        margin-bottom: 20px;\r\n    }\r\n    \r\n    .sing2sky-products-section .products-grid {\r\n        grid-template-columns: 1fr;\r\n        gap: 15px;\r\n    }\r\n    \r\n    .sing2sky-products-section .product-card {\r\n        padding: 15px;\r\n        border-radius: 12px;\r\n    }\r\n    \r\n    .sing2sky-products-section .product-card img {\r\n        height: 200px;\r\n        margin-bottom: 10px;\r\n    }\r\n    \r\n    .sing2sky-products-section .product-card h3 {\r\n        margin-bottom: 10px;\r\n    }\r\n    \r\n    .sing2sky-products-section .product-card p {\r\n        margin-bottom: 10px;\r\n    }\r\n    \r\n    .sing2sky-products-section .product-card a {\r\n        padding: 8px 14px;\r\n    }\r\n}\r\n\r\n@media screen and (min-width: 481px) and (max-width: 768px) {\r\n    .sing2sky-products-section {\r\n        padding: 30px 20px;\r\n        border-radius: 18px;\r\n    }\r\n    \r\n    .sing2sky-products-section .products-title {\r\n        margin-bottom: 30px;\r\n    }\r\n    \r\n    .sing2sky-products-section .products-grid {\r\n        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\r\n        gap: 18px;\r\n    }\r\n    \r\n    .sing2sky-products-section .product-card img {\r\n        height: 240px;\r\n    }\r\n}\r\n\r\n@media screen and (min-width: 769px) and (max-width: 1024px) {\r\n    .sing2sky-products-section {\r\n        padding: 35px 25px;\r\n    }\r\n    \r\n    .sing2sky-products-section .products-grid {\r\n        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\r\n    }\r\n    \r\n    .sing2sky-products-section .product-card img {\r\n        height: 260px;\r\n    }\r\n}\r\n\r\n@media screen and (min-width: 1025px) {\r\n    .sing2sky-products-section .products-grid {\r\n        grid-template-columns: repeat(3, 1fr);\r\n    }\r\n}\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-280b63d e-flex e-con-boxed e-con e-parent\" data-id=\"280b63d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-73594a8 elementor-widget elementor-widget-html\" data-id=\"73594a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* Reset styles to avoid external interference *\/\r\n.partners-carousel-wrapper,\r\n.partners-carousel-wrapper * {\r\n    box-sizing: border-box;\r\n    margin: 0;\r\n    padding: 0;\r\n}\r\n\r\n.partners-carousel-wrapper {\r\n    width: 100vw;\r\n    position: relative;\r\n    left: 50%;\r\n    right: 50%;\r\n    margin-left: -50vw;\r\n    margin-right: -50vw;\r\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;\r\n    background-color: #f9fafb;\r\n    line-height: 1.6;\r\n    padding: 40px 0;\r\n    clear: both;\r\n    isolation: isolate; \/* Create independent stacking context *\/\r\n}\r\n\r\n.partners-carousel-wrapper .pc-container {\r\n    width: 100%;\r\n    max-width: 1200px;\r\n    margin: 0 auto;\r\n    padding: 0 20px;\r\n}\r\n\r\n.partners-carousel-wrapper .pc-title {\r\n    font-size: clamp(1.5rem, 4vw, 2.5rem);\r\n    text-align: center;\r\n    font-weight: 900;\r\n    color: #1f2937;\r\n    margin: 0 0 3rem 0;\r\n    line-height: 1.2;\r\n}\r\n\r\n.partners-carousel-wrapper .pc-carousel-wrapper {\r\n    position: relative;\r\n    overflow: hidden;\r\n    border-radius: 12px;\r\n}\r\n\r\n.partners-carousel-wrapper .pc-carousel-container-outer {\r\n    position: relative;\r\n    overflow: hidden;\r\n    cursor: grab;\r\n}\r\n\r\n.partners-carousel-wrapper .pc-carousel-container-outer:active {\r\n    cursor: grabbing;\r\n}\r\n\r\n.partners-carousel-wrapper .pc-carousel-container {\r\n    display: flex;\r\n    width: 100%;\r\n    transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);\r\n    gap: 10px;\r\n    will-change: transform;\r\n    padding: 0 10px;\r\n}\r\n\r\n.partners-carousel-wrapper .pc-carousel-slide {\r\n    flex: none;\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    min-height: 120px;\r\n    transition: transform 0.3s ease;\r\n}\r\n\r\n.partners-carousel-wrapper .pc-carousel-slide:hover {\r\n    transform: translateY(-2px);\r\n}\r\n\r\n\/* Responsive width settings - precise calculations for perfect display *\/\r\n@media (max-width: 480px) {\r\n    .partners-carousel-wrapper .pc-carousel-slide {\r\n        width: calc((100% - 10px) \/ 2);\r\n        min-height: 70px;\r\n        padding: 10px;\r\n    }\r\n    .partners-carousel-wrapper .pc-carousel-container {\r\n        gap: 10px;\r\n        padding: 0 10px;\r\n    }\r\n    .partners-carousel-wrapper .pc-partner-logo {\r\n        max-height: 50px;\r\n        max-width: 100%;\r\n        width: auto;\r\n        height: auto;\r\n    }\r\n}\r\n\r\n@media (min-width: 481px) and (max-width: 768px) {\r\n    .partners-carousel-wrapper .pc-carousel-slide {\r\n        width: calc((100% - 20px) \/ 3);\r\n        min-height: 80px;\r\n        padding: 12px;\r\n    }\r\n    .partners-carousel-wrapper .pc-carousel-container {\r\n        gap: 10px;\r\n        padding: 0 10px;\r\n    }\r\n    .partners-carousel-wrapper .pc-partner-logo {\r\n        max-height: 55px;\r\n        max-width: 100%;\r\n        width: auto;\r\n        height: auto;\r\n    }\r\n}\r\n\r\n@media (min-width: 769px) and (max-width: 1024px) {\r\n    .partners-carousel-wrapper .pc-carousel-slide {\r\n        width: calc((100% - 30px) \/ 4);\r\n        min-height: 90px;\r\n        padding: 15px;\r\n    }\r\n    .partners-carousel-wrapper .pc-carousel-container {\r\n        gap: 10px;\r\n        padding: 0 10px;\r\n    }\r\n    .partners-carousel-wrapper .pc-partner-logo {\r\n        max-height: 60px;\r\n        max-width: 100%;\r\n        width: auto;\r\n        height: auto;\r\n    }\r\n}\r\n\r\n@media (min-width: 1025px) and (max-width: 1440px) {\r\n    .partners-carousel-wrapper .pc-carousel-slide {\r\n        width: calc((100% - 40px) \/ 5);\r\n        min-height: 100px;\r\n        padding: 18px;\r\n    }\r\n    .partners-carousel-wrapper .pc-carousel-container {\r\n        gap: 10px;\r\n        padding: 0 10px;\r\n    }\r\n    .partners-carousel-wrapper .pc-partner-logo {\r\n        max-height: 65px;\r\n        max-width: 100%;\r\n        width: auto;\r\n        height: auto;\r\n    }\r\n}\r\n\r\n@media (min-width: 1441px) {\r\n    .partners-carousel-wrapper .pc-carousel-slide {\r\n        width: calc((100% - 50px) \/ 6);\r\n        min-height: 110px;\r\n        padding: 20px;\r\n    }\r\n    .partners-carousel-wrapper .pc-carousel-container {\r\n        gap: 10px;\r\n        padding: 0 10px;\r\n    }\r\n    .partners-carousel-wrapper .pc-partner-logo {\r\n        max-height: 70px;\r\n        max-width: 100%;\r\n        width: auto;\r\n        height: auto;\r\n    }\r\n}\r\n\r\n\/* CSS to disable lazy loading *\/\r\n.partners-carousel-wrapper img {\r\n    border: 0;\r\n    outline: 0;\r\n    text-decoration: none;\r\n    vertical-align: middle;\r\n}\r\n\r\n\/* Force disable common lazy loading plugins *\/\r\n.partners-carousel-wrapper .pc-partner-logo {\r\n    max-width: 100%;\r\n    max-height: 100%;\r\n    object-fit: contain;\r\n    object-position: center;\r\n    display: block !important;\r\n    visibility: visible !important;\r\n    opacity: 1 !important;\r\n    \/* Disable lazy loading related transform *\/\r\n    transform: none !important;\r\n    \/* Ensure images are immediately visible *\/\r\n    will-change: auto !important;\r\n    \/* Center image display *\/\r\n    margin: auto;\r\n}\r\n\r\n\/* Force styles for specific lazy loading plugins *\/\r\n.partners-carousel-wrapper .pc-partner-logo[data-src],\r\n.partners-carousel-wrapper .pc-partner-logo[data-lazy-src],\r\n.partners-carousel-wrapper .pc-partner-logo.lazy {\r\n    opacity: 1 !important;\r\n    visibility: visible !important;\r\n    display: block !important;\r\n}\r\n\r\n.partners-carousel-wrapper .pc-dragging {\r\n    cursor: grabbing !important;\r\n    user-select: none;\r\n}\r\n<\/style>\r\n\r\n<div class=\"partners-carousel-wrapper\" id=\"partnersCarouselComponent\">\r\n    <div class=\"pc-container\">\r\n        <h2 class=\"pc-title\">Some of our partners<\/h2>\r\n        \r\n        <div class=\"pc-carousel-wrapper\">\r\n            <div class=\"pc-carousel-container-outer\" id=\"pcCarouselWrapper\">\r\n                <div id=\"pcCarousel\" class=\"pc-carousel-container\">\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"CLtoys\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/CLtoys.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Educating Kids\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/Educating-Kids.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Edukplay\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/edukplay.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Goodkids\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/goodkids-1.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"HABA\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/haba.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"JM Import\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/JMImport.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Kiddielark\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/Kiddielark.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Lakeshore\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/Lakeshore.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"ROVER Education\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/ROVEREducation.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Sensory Edge\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/SensoryEdge.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"WOODIS\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/WOODIS.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Beijing Fangcao Education\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/\u4eac\u7248\u82b3\u8349\u6559\u80b2.png\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Kaiqi Group\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/\u51ef\u5947\u96c6\u56e2.png\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Li Yueer Guava Garden\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/\u674e\u8dc3\u513f\u82ad\u4e50\u56ed.png\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Mickey Wonder\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/\u7c73\u5947\u5999.png\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Xiang Tian Ge\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/xiangtiange-.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                    <div class=\"pc-carousel-slide\"><img decoding=\"async\" alt=\"Yu He\" class=\"pc-partner-logo\" src=\"https:\/\/sing2sky.com\/wp-content\/uploads\/2025\/06\/yuhe.avif\" loading=\"eager\" data-skip-lazy=\"true\" data-no-lazy=\"1\" title=\"\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n    'use strict';\r\n    \r\n    \/\/ Prevent duplicate initialization\r\n    if (window.PartnersCarouselInitialized) {\r\n        return;\r\n    }\r\n    window.PartnersCarouselInitialized = true;\r\n    \r\n    \/\/ Use independent namespace to avoid conflicts\r\n    const PartnersCarousel = {\r\n        init: function() {\r\n            const componentWrapper = document.getElementById('partnersCarouselComponent');\r\n            if (!componentWrapper) {\r\n                console.error('Partners carousel component not found');\r\n                return;\r\n            }\r\n            \r\n            const carousel = componentWrapper.querySelector('#pcCarousel');\r\n            const wrapper = componentWrapper.querySelector('#pcCarouselWrapper');\r\n            \r\n            if (!carousel || !wrapper) {\r\n                console.error('Carousel elements not found');\r\n                return;\r\n            }\r\n            \r\n            const originalSlides = Array.from(carousel.children);\r\n            const totalSlides = originalSlides.length;\r\n            let currentIndex = 0;\r\n            let autoPlayTimer = null;\r\n            let isDragging = false;\r\n            let startX = 0;\r\n            let currentTranslate = 0;\r\n            let prevTranslate = 0;\r\n            let isInitialized = false;\r\n            \r\n            console.log(`Found ${totalSlides} original slides`);\r\n            \r\n            \/\/ Get the number of slides to display on current screen\r\n            function getSlidesToShow() {\r\n                const width = window.innerWidth;\r\n                if (width <= 480) return 2;\r\n                if (width <= 768) return 3;\r\n                if (width <= 1024) return 4;\r\n                if (width <= 1440) return 5;\r\n                return 6;\r\n            }\r\n            \r\n            \/\/ Get slide width (including gap) - using new calculation method\r\n            function getSlideWidth() {\r\n                const slidesToShow = getSlidesToShow();\r\n                const containerWidth = wrapper.offsetWidth - 20; \/\/ Subtract container padding\r\n                const gap = 10;\r\n                return (containerWidth - (gap * (slidesToShow - 1))) \/ slidesToShow;\r\n            }\r\n            \r\n            \/\/ Create infinite loop clones\r\n            function createInfiniteLoop() {\r\n                \/\/ Clear existing content\r\n                carousel.innerHTML = '';\r\n                \r\n                \/\/ Create 3x content for infinite loop\r\n                const slidesToShow = getSlidesToShow();\r\n                const clonesNeeded = Math.max(slidesToShow, 3);\r\n                \r\n                \/\/ Pre-clones\r\n                for (let i = totalSlides - clonesNeeded; i < totalSlides; i++) {\r\n                    const clone = originalSlides[i].cloneNode(true);\r\n                    clone.classList.add('clone');\r\n                    carousel.appendChild(clone);\r\n                }\r\n                \r\n                \/\/ Original content\r\n                originalSlides.forEach(slide => {\r\n                    carousel.appendChild(slide.cloneNode(true));\r\n                });\r\n                \r\n                \/\/ Post-clones\r\n                for (let i = 0; i < clonesNeeded; i++) {\r\n                    const clone = originalSlides[i].cloneNode(true);\r\n                    clone.classList.add('clone');\r\n                    carousel.appendChild(clone);\r\n                }\r\n                \r\n                \/\/ Set initial position to the start of real content\r\n                currentIndex = clonesNeeded;\r\n                updateCarouselPosition(false);\r\n                \r\n                \/\/ Force repaint\r\n                carousel.style.display = 'none';\r\n                carousel.offsetHeight; \/\/ Trigger reflow\r\n                carousel.style.display = 'flex';\r\n                \r\n                console.log(`Created infinite loop with ${carousel.children.length} total slides`);\r\n            }\r\n            \r\n            \/\/ Update carousel position\r\n            function updateCarouselPosition(smooth = true) {\r\n                const slideWidth = getSlideWidth();\r\n                const gap = 10;\r\n                const translateX = -(currentIndex * (slideWidth + gap));\r\n                \r\n                carousel.style.transition = smooth ? 'transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)' : 'none';\r\n                carousel.style.transform = `translateX(${translateX}px)`;\r\n                \r\n                if (smooth) {\r\n                    setTimeout(checkInfiniteLoop, 500);\r\n                }\r\n            }\r\n            \r\n            \/\/ Check infinite loop reset\r\n            function checkInfiniteLoop() {\r\n                if (isDragging) return;\r\n                \r\n                const slidesToShow = getSlidesToShow();\r\n                const clonesNeeded = Math.max(slidesToShow, 3);\r\n                \r\n                if (currentIndex <= clonesNeeded - 1) {\r\n                    currentIndex = totalSlides + clonesNeeded - 1;\r\n                    updateCarouselPosition(false);\r\n                } else if (currentIndex >= totalSlides + clonesNeeded) {\r\n                    currentIndex = clonesNeeded;\r\n                    updateCarouselPosition(false);\r\n                }\r\n            }\r\n            \r\n            \/\/ Next slide\r\n            function next() {\r\n                if (isDragging) return;\r\n                currentIndex++;\r\n                updateCarouselPosition();\r\n            }\r\n            \r\n            \/\/ Previous slide\r\n            function prev() {\r\n                if (isDragging) return;\r\n                currentIndex--;\r\n                updateCarouselPosition();\r\n            }\r\n            \r\n            \/\/ Auto play\r\n            function startAutoPlay() {\r\n                stopAutoPlay();\r\n                autoPlayTimer = setInterval(next, 3000);\r\n            }\r\n            \r\n            function stopAutoPlay() {\r\n                if (autoPlayTimer) {\r\n                    clearInterval(autoPlayTimer);\r\n                    autoPlayTimer = null;\r\n                }\r\n            }\r\n            \r\n            \/\/ Drag event handlers\r\n            function handleTouchStart(e) {\r\n                if (isDragging) return;\r\n                \r\n                startX = e.type.includes('touch') ? e.touches[0].clientX : e.clientX;\r\n                isDragging = true;\r\n                wrapper.classList.add('pc-dragging');\r\n                stopAutoPlay();\r\n                \r\n                const slideWidth = getSlideWidth();\r\n                const gap = 10;\r\n                prevTranslate = -(currentIndex * (slideWidth + gap));\r\n                \r\n                e.preventDefault();\r\n            }\r\n            \r\n            function handleTouchMove(e) {\r\n                if (!isDragging) return;\r\n                \r\n                const currentX = e.type.includes('touch') ? e.touches[0].clientX : e.clientX;\r\n                const diffX = currentX - startX;\r\n                currentTranslate = prevTranslate + diffX;\r\n                \r\n                carousel.style.transition = 'none';\r\n                carousel.style.transform = `translateX(${currentTranslate}px)`;\r\n                \r\n                e.preventDefault();\r\n            }\r\n            \r\n            function handleTouchEnd(e) {\r\n                if (!isDragging) return;\r\n                \r\n                isDragging = false;\r\n                wrapper.classList.remove('pc-dragging');\r\n                \r\n                const currentX = e.type.includes('touch') ? \r\n                    (e.changedTouches?.[0]?.clientX || startX) : e.clientX;\r\n                const diffX = startX - currentX;\r\n                \r\n                \/\/ Determine swipe direction and distance\r\n                if (Math.abs(diffX) > 50) {\r\n                    if (diffX > 0) {\r\n                        next();\r\n                    } else {\r\n                        prev();\r\n                    }\r\n                } else {\r\n                    updateCarouselPosition();\r\n                }\r\n                \r\n                setTimeout(() => {\r\n                    if (!isDragging) startAutoPlay();\r\n                }, 100);\r\n            }\r\n            \r\n            \/\/ Bind events\r\n            function bindEvents() {\r\n                \/\/ Touch events\r\n                wrapper.addEventListener('touchstart', handleTouchStart, { passive: false });\r\n                wrapper.addEventListener('touchmove', handleTouchMove, { passive: false });\r\n                wrapper.addEventListener('touchend', handleTouchEnd);\r\n                \r\n                \/\/ Mouse events\r\n                wrapper.addEventListener('mousedown', handleTouchStart);\r\n                document.addEventListener('mousemove', handleTouchMove);\r\n                document.addEventListener('mouseup', handleTouchEnd);\r\n                \r\n                \/\/ Mouse hover controls\r\n                wrapper.addEventListener('mouseenter', stopAutoPlay);\r\n                wrapper.addEventListener('mouseleave', () => {\r\n                    if (!isDragging) startAutoPlay();\r\n                });\r\n                \r\n                \/\/ Window resize\r\n                let resizeTimer;\r\n                window.addEventListener('resize', () => {\r\n                    clearTimeout(resizeTimer);\r\n                    resizeTimer = setTimeout(() => {\r\n                        if (isInitialized) {\r\n                            createInfiniteLoop();\r\n                            updateCarouselPosition(false);\r\n                        }\r\n                    }, 250);\r\n                });\r\n                \r\n                \/\/ Prevent image dragging\r\n                wrapper.addEventListener('dragstart', e => e.preventDefault());\r\n            }\r\n            \r\n            \/\/ Force load images, disable lazy loading\r\n            function forceLoadImages() {\r\n                const images = carousel.querySelectorAll('img');\r\n                images.forEach(img => {\r\n                    \/\/ If lazy loading attributes exist, force load\r\n                    if (img.dataset.src && !img.src.startsWith('http')) {\r\n                        img.src = img.dataset.src;\r\n                        img.removeAttribute('data-src');\r\n                    }\r\n                    if (img.dataset.lazySrc && !img.src.startsWith('http')) {\r\n                        img.src = img.dataset.lazySrc;\r\n                        img.removeAttribute('data-lazy-src');\r\n                    }\r\n                    \r\n                    \/\/ Remove lazy loading related classes\r\n                    img.classList.remove('lazy', 'lazyload', 'lazyloading', 'lazyloaded');\r\n                    \r\n                    \/\/ Force display images\r\n                    img.style.opacity = '1';\r\n                    img.style.visibility = 'visible';\r\n                    img.style.display = 'block';\r\n                    \r\n                    console.log('Processing image:', img.src, img.alt);\r\n                });\r\n            }\r\n            \r\n            \/\/ Image load completion check\r\n            function checkImagesLoaded() {\r\n                const images = carousel.querySelectorAll('img');\r\n                let loadedCount = 0;\r\n                const totalImages = images.length;\r\n                \r\n                function onImageLoad() {\r\n                    loadedCount++;\r\n                    if (loadedCount === totalImages) {\r\n                        console.log('All images loaded');\r\n                        \/\/ Re-initialize position after images are loaded\r\n                        setTimeout(() => {\r\n                            if (isInitialized) {\r\n                                updateCarouselPosition(false);\r\n                            }\r\n                        }, 100);\r\n                    }\r\n                }\r\n                \r\n                images.forEach(img => {\r\n                    if (img.complete) {\r\n                        onImageLoad();\r\n                    } else {\r\n                        img.addEventListener('load', onImageLoad);\r\n                        img.addEventListener('error', () => {\r\n                            console.warn('Image failed to load:', img.src);\r\n                            onImageLoad();\r\n                        });\r\n                    }\r\n                });\r\n            }\r\n            \r\n            \/\/ Initialize\r\n            function initialize() {\r\n                console.log('Initializing partners carousel...');\r\n                \r\n                \/\/ First force load all images\r\n                forceLoadImages();\r\n                \r\n                createInfiniteLoop();\r\n                bindEvents();\r\n                checkImagesLoaded();\r\n                \r\n                \/\/ Delay auto play start to ensure initialization is complete\r\n                setTimeout(() => {\r\n                    isInitialized = true;\r\n                    \/\/ Force load images again just in case\r\n                    forceLoadImages();\r\n                    startAutoPlay();\r\n                    console.log('Partners carousel initialized successfully');\r\n                }, 500);\r\n            }\r\n            \r\n            \/\/ Start initialization\r\n            initialize();\r\n        }\r\n    };\r\n    \r\n    \/\/ Ensure initialization after DOM is loaded\r\n    if (document.readyState === 'loading') {\r\n        document.addEventListener('DOMContentLoaded', PartnersCarousel.init);\r\n    } else {\r\n        \/\/ Slight delay to ensure all resources are ready\r\n        setTimeout(PartnersCarousel.init, 100);\r\n    }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Science Technology Arts Mathematics View More Skills Through Interdisciplinary Learning Learn More Real Projects Inspire Creativity Start Experience Teamwork Spirit Achieves Growth Join Us Future Education Infinite Possibilities Explore Future Innovation Learning Limitless Potential Discover More Science Technology Arts Mathematics View More \u2039 \u203a Science TechnologyEngineering Mathematics Premium wooden educational toys engineered to foster STEM [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-15312","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"_links":{"self":[{"href":"https:\/\/sing2sky.com\/ru\/wp-json\/wp\/v2\/pages\/15312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sing2sky.com\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sing2sky.com\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sing2sky.com\/ru\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sing2sky.com\/ru\/wp-json\/wp\/v2\/comments?post=15312"}],"version-history":[{"count":0,"href":"https:\/\/sing2sky.com\/ru\/wp-json\/wp\/v2\/pages\/15312\/revisions"}],"wp:attachment":[{"href":"https:\/\/sing2sky.com\/ru\/wp-json\/wp\/v2\/media?parent=15312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}