{"id":13,"date":"2016-07-25T18:32:22","date_gmt":"2016-07-25T18:32:22","guid":{"rendered":"https:\/\/demo2.mybscu.org\/?page_id=13"},"modified":"2025-04-30T16:48:10","modified_gmt":"2025-04-30T20:48:10","slug":"home-2","status":"publish","type":"page","link":"https:\/\/demo2.mybscu.org\/es\/","title":{"rendered":"South Florida&#8217;s Credit Union"},"content":{"rendered":"<div data-parent=\"true\" class=\"vc_row sectickerwidth style-back_color-144528-bg row-container desktop-hidden tablet-hidden mobile-hidden\" id=\"row-unique-0\"><div class=\"row col-no-gutter limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-middle pos-center align_left column_parent col-lg-9 col-md-100 col-sm-100 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell  vc_custom_1718989666842 no-block-padding\" style=\"padding-top: 10px ;padding-bottom: 10px ;\" ><div class=\"uncont\" ><div class=\"aio-icon-component    style_1\"><a class=\"aio-icon-box-link\" href=\"\/es\/newdebitcard\/?utm_source=homepage&#038;utm_medium=button&#038;utm_campaign=debitcards\" target=\"_blank\" rel=\"noopener\" ><div id=\"Info-box-wrap-7917\" class=\"aio-icon-box left-icon\" style=\"\"  ><div class=\"aio-icon-left\"><div class=\"ult-just-icon-wrapper\"><div class=\"align-icon\" style=\"text-align:center;\">\n<div class=\"aio-icon none\" data-animation=\"pulse\" data-animation-delay=\"03\" style=\"color:#ffffff;font-size:80px;display:inline-block;\">\n\t<i class=\"Defaults-exclamation-triangle warning\"><\/i>\n<\/div><\/div><\/div><\/div><div class=\"aio-ibd-block\"><div class=\"aio-icon-header\" ><h3 class=\"aio-icon-title ult-responsive\"  data-ultimate-target='#Info-box-wrap-7917 .aio-icon-title'  data-responsive-json-new='{\"font-size\":\"desktop:23px;mobile:20px;\",\"line-height\":\"\"}'  style=\"font-weight:bold;color:#ffffff;\">ATENCI\u00d3N TITULARES DE TARJETAS DE D\u00c9BITO<\/h3><\/div> <!-- header --><div class=\"aio-icon-description ult-responsive\"  data-ultimate-target='#Info-box-wrap-7917 .aio-icon-description'  data-responsive-json-new='{\"font-size\":\"desktop:20px;mobile:15px;\",\"line-height\":\"\"}'  style=\"color:#ffffff;\">APRENDE C\u00d3MO ACTIVAR TU NUEVA TARJETA DE D\u00c9BITO.<\/div> <!-- description --><\/div> <!-- aio-ibd-block --><\/div> <!-- aio-icon-box --><\/a><\/div> <!-- aio-icon-component --><\/div><\/div><\/div><\/div><\/div><div class=\"wpb_column pos-middle pos-center align_left column_parent col-lg-3 col-md-100 col-md-clear col-sm-100 col-sm-clear single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell  vc_custom_1718987017254 no-block-padding\" style=\"padding-top: 10px ;padding-bottom: 10px ;\" ><div class=\"uncont\" ><span class=\"btn-container btn-inline btn-inline-mobile animate_when_almost_visible zoom-in\" ><a href=\"\/es\/newdebitcard\/?utm_source=homepage&utm_medium=button&utm_campaign=debitcards\" class=\"custom-link btn btn-lg border-width-0 btn-button_color-171612 btn-round btn-flat btn-shadow btn-shadow-sm btn-icon-left btn-ripple-in btn-border-animated\" title=\"El enlace se abrir\u00e1 en una nueva pesta\u00f1a.\" target=\"_blank\"><i class=\"fa fa-book4\"><\/i>COMENZAR<\/a><\/span><\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-0\" data-row=\"script-row-unique-0\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-0\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row style-color-lxmt-bg row-container\" id=\"row-unique-1\"><div class=\"row full-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" >\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!-- Slider System Widget -->\n<div id=\"slider-system-container\"><\/div>\n<script src=\"https:\/\/internal.mybscu.org\/slider-manager\/api\/get-slides.php?token=55066ece3386613e9d37222c24d045f0\"><\/script>\n<script src=\"{BASE_URL}\/widget\/loader.js\"><\/script>\n<!-- End Slider System Widget -->\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-1\" data-row=\"script-row-unique-1\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-1\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row style-color-lxmt-bg vc_custom_1740844483132 row-container\" style=\"padding-top: 20px ;padding-bottom: 20px ;\" id=\"row-unique-2\"><div class=\"row full-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" >\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!-- BSCU Fraud Alert Accordion - WordPress HTML Block -->\n<div class=\"bscu-fraud-alert-container\">\n  <style>\n    \/* Isolated styles with specific class prefixes to avoid WordPress conflicts *\/\n    .bscu-fraud-alert-container .bscu-accordion {\n      background-color: #f8f9fa;\n      border-left: 6px solid #dc3545;\n      cursor: pointer;\n      padding: 18px;\n      width: 100%;\n      text-align: left;\n      border: none;\n      outline: none;\n      transition: 0.4s;\n      position: relative;\n      font-weight: bold;\n      font-size: 1.2rem;\n      box-shadow: 0 2px 15px rgba(0, 0, 0, 0.08);\n      display: flex;\n      align-items: center;\n    }\n\n    .bscu-fraud-alert-container .bscu-toggle-indicator {\n      display: flex;\n      align-items: center;\n      margin-left: auto;\n      color: #dc3545;\n    }\n    \n    \/* Hide\/Show logic for toggle buttons *\/\n    .bscu-fraud-alert-container .bscu-toggle-hide {\n      display: none;\n    }\n    \n    .bscu-fraud-alert-container .bscu-accordion.active .bscu-toggle-view {\n      display: none;\n    }\n    \n    .bscu-fraud-alert-container .bscu-accordion.active .bscu-toggle-hide {\n      display: flex;\n    }\n    \n    .bscu-fraud-alert-container .bscu-toggle-text {\n      font-size: 0.85rem;\n      margin-right: 8px;\n    }\n    \n    \/* Desktop view - one line *\/\n    .bscu-fraud-alert-container .bscu-toggle-text::after {\n      content: \" Message\";\n      display: inline;\n    }\n    \n    .bscu-fraud-alert-container .bscu-toggle-icon {\n      font-weight: bold;\n      font-size: 1.5rem;\n    }\n\n    .bscu-fraud-alert-container .bscu-panel {\n      padding: 0;\n      background-color: #f8f9fa;\n      max-height: 0;\n      overflow: hidden;\n      transition: max-height 0.2s ease-out;\n      border-left: 6px solid #dc3545;\n      box-shadow: 0 2px 15px rgba(0, 0, 0, 0.08);\n      opacity: 0; \/* Hide content initially *\/\n    }\n\n    \/* Show content when panel is expanded *\/\n    .bscu-fraud-alert-container .bscu-panel.show-content {\n      opacity: 1;\n    }\n\n\n    .bscu-fraud-alert-container .bscu-banner-icon {\n      background: #dc3545;\n      color: white;\n      width: 30px;\n      height: 30px;\n      border-radius: 50%;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      font-size: 1rem;\n      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n      margin-right: 15px;\n      flex-shrink: 0; \/* Prevent icon from shrinking *\/\n    }\n\n    .bscu-fraud-alert-container .bscu-banner-content {\n      color: #2d3436;\n      font-size: 1.1rem;\n      line-height: 1.6;\n      padding: 1.5rem;\n    }\n\n    .bscu-fraud-alert-container .bscu-report-button {\n      background: #dc3545;\n      color: white !important;\n      padding: 0.5rem 1.2rem;\n      border-radius: 20px;\n      font-weight: bold;\n      display: inline-block;\n      margin: 0.5rem 0;\n      box-shadow: 0 2px 4px rgba(220, 53, 69, 0.2);\n      text-decoration: none;\n      transition: background-color 0.3s, transform 0.2s;\n      border: none;\n      cursor: pointer;\n    }\n\n    .bscu-fraud-alert-container .bscu-report-button:hover {\n      background: #c82333;\n      transform: translateY(-1px);\n      text-decoration: none;\n      color: white !important;\n    }\n\n    .bscu-fraud-alert-container .bscu-report-button:active {\n      transform: translateY(0);\n    }\n\n    .bscu-fraud-alert-container strong {\n      font-weight: 600;\n    }\n\n    \/* Responsive adjustments *\/\n    @media (max-width: 767px) {\n      .bscu-fraud-alert-container .bscu-accordion, \n      .bscu-fraud-alert-container .bscu-panel {\n        margin: 0;\n      }\n      \n      .bscu-fraud-alert-container .bscu-accordion {\n        font-size: 0.95rem;\n        padding: 12px 15px;\n      }\n      \n      .bscu-fraud-alert-container .bscu-banner-content {\n        font-size: 0.95rem;\n        padding: 1rem;\n      }\n      \n      .bscu-fraud-alert-container .bscu-banner-icon {\n        width: 26px;\n        height: 26px;\n        min-width: 26px; \/* Ensure icon doesn't shrink *\/\n        font-size: 0.85rem;\n        margin-right: 10px;\n      }\n    }\n    \n    \/* Mobile view for toggle text to stack on mobile *\/\n    @media (max-width: 480px) {\n      .bscu-fraud-alert-container .bscu-toggle-text {\n        display: block;\n        font-size: 0.7rem;\n        line-height: 1;\n        text-align: center;\n        margin-bottom: 2px;\n      }\n      \n      .bscu-fraud-alert-container .bscu-toggle-text::after {\n        content: \"Message\";\n        display: block;\n        margin-top: 2px;\n      }\n      \n      .bscu-fraud-alert-container .bscu-toggle-view,\n      .bscu-fraud-alert-container .bscu-toggle-hide {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        width: 42px;\n      }\n      \n      .bscu-fraud-alert-container .bscu-toggle-hide {\n        display: none;\n      }\n      \n      .bscu-fraud-alert-container .bscu-accordion.active .bscu-toggle-view {\n        display: none;\n      }\n      \n      .bscu-fraud-alert-container .bscu-accordion.active .bscu-toggle-hide {\n        display: flex;\n      }\n      \n      .bscu-fraud-alert-container .bscu-toggle-icon {\n        font-size: 1.2rem;\n      }\n    }\n  <\/style>\n\n  <button class=\"bscu-accordion\">\n    <div class=\"bscu-banner-icon\">\n      <i class=\"fas fa-lock\"><\/i>\n    <\/div>\n    Alerta importante de fraude para miembros\n    <div class=\"bscu-toggle-indicator\">\n      <div class=\"bscu-toggle-view\">\n        <span class=\"bscu-toggle-text\">Vista<\/span>\n        <span class=\"bscu-toggle-icon\">+<\/span>\n      <\/div>\n      <div class=\"bscu-toggle-hide\">\n        <span class=\"bscu-toggle-text\">Esconder<\/span>\n        <span class=\"bscu-toggle-icon\">-<\/span>\n      <\/div>\n    <\/div>\n  <\/button>\n  \n  <div class=\"bscu-panel\">\n    <div class=\"bscu-banner-content\">\n      <strong>Aviso importante:<\/strong> \n      <strong>BSCU<\/strong> voluntad \n      <strong>NUNCA<\/strong> \n      <strong>llamar<\/strong> o \n      <strong>texto<\/strong> T\u00fa por tu\n      <strong>nombre de usuario, contrase\u00f1a, c\u00f3digo de acceso seguro (SAC), n\u00famero de tarjeta, fecha de vencimiento o CVV de la tarjeta<\/strong>! Si recibes un <strong>llamar<\/strong> o \n      <strong>texto<\/strong> Si desea solicitar esta informaci\u00f3n o si le ha proporcionado esta informaci\u00f3n a alguien, llame al <strong>1-800-637-2728 (opci\u00f3n 7)<\/strong> o <a target=\"_blank\" href=\"https:\/\/www.bscu.org\/forms\/eforms\/report-suspicious-activity\/160\/\" class=\"bscu-report-button\">Reportar actividad sospechosa<\/a>\n    <\/div>\n  <\/div>\n\n  <script>\n    \/\/ Immediately-invoked function expression to avoid global scope pollution\n    (function() {\n      \/\/ Wait for DOM to be ready\n      function ready(fn) {\n        if (document.readyState !== 'loading') {\n          fn();\n        } else {\n          document.addEventListener('DOMContentLoaded', fn);\n        }\n      }\n      \n      ready(function() {\n        \/\/ Get all elements with class \"bscu-accordion\" within this container only\n        var container = document.querySelector('.bscu-fraud-alert-container');\n        var acc = container.getElementsByClassName(\"bscu-accordion\");\n        var panels = container.getElementsByClassName(\"bscu-panel\");\n        \n        \/\/ Make sure panels are initially collapsed and hidden\n        for (var i = 0; i < panels.length; i++) {\n          panels[i].style.maxHeight = null;\n        }\n        \n        for (var i = 0; i < acc.length; i++) {\n          acc[i].addEventListener(\"click\", function() {\n            this.classList.toggle(\"active\");\n            var panel = this.nextElementSibling;\n            \n            if (panel.style.maxHeight) {\n              \/\/ Collapse panel\n              panel.style.maxHeight = null;\n              panel.classList.remove(\"show-content\");\n            } else {\n              \/\/ Expand panel\n              panel.style.maxHeight = panel.scrollHeight + \"px\";\n              panel.classList.add(\"show-content\");\n            }\n          });\n        }\n      });\n    })();\n  <\/script>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-2\" data-row=\"script-row-unique-2\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-2\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row vc_custom_1735570284468 row-container\" style=\"padding-top: 20px ;padding-right: 0px ;padding-bottom: 20px ;padding-left: 0px ;\" id=\"row-unique-3\"><div class=\"row full-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell  vc_custom_1670282560087 no-block-padding\" style=\"padding-top: 0px ;padding-right: 0px ;padding-bottom: 0px ;padding-left: 0px ;\" ><div class=\"uncont\" ><div id=\"ultimate-heading-221969d9797cd0e6f\" class=\"uvc-heading ult-adjust-bottom-margin ultimate-heading-221969d9797cd0e6f uvc-8776\" data-hspacer=\"no_spacer\"  data-halign=\"center\" style=\"text-align:center\"><div class=\"uvc-heading-spacer no_spacer\" style=\"top\"><\/div><div class=\"uvc-main-heading ult-responsive\"  data-ultimate-target='.uvc-heading.ultimate-heading-221969d9797cd0e6f h1'  data-responsive-json-new='{\"font-size\":\"desktop:26px;mobile:22px;\",\"line-height\":\"\"}' ><h1 style=\"font-weight:bold;\">Elige lo que sea adecuado para ti<\/h1><\/div><\/div>\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t\t<!-- Font Awesome -->\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\" \/>\n<div id=\"root\"><\/div>\n\n<script type=\"text\/babel\">\n\tfunction IconCarousel() {\n\t\tconst [currentPage, setCurrentPage] = React.useState(0);\n\t\t\n\t\tconst items = [\n\t\t\t{ icon: 'fa-solid fa-users', text: 'Become a Member', href: '\/join-us' },\n\t\t\t{ icon: 'fa-solid fa-calendar', text: 'Book an Appointment', href: 'https:\/\/oac.fmsiportal.com\/AppointmentWidget\/service?urlCode=9PI5197YG4ODRDVJEJAU' },\n\t\t\t{ icon: 'fa-solid fa-house', text: 'Apply for Mortgage', href: '\/mortgage' },\n\t\t\t{ icon: 'fa-solid fa-truck', text: 'Auto Loans', href: '\/autoloans' },\n\t\t\t{ icon: 'fa-solid fa-car', text: 'Electric Vehicle Loans', href: '\/evloans' },\n\t\t\t{ icon: 'fa-solid fa-credit-card', text: 'Compare Credit Cards', href: '\/creditcards' },\n\t\t\t{ icon: 'fa-solid fa-circle-plus', text: 'Skip a Pay', href: '\/skipapay' },\n\t\t\t{ icon: 'fa-solid fa-user-plus', text: 'Refer a Friend', href: 'https:\/\/referfriend.org\/' },\n\t\t\t{ icon: 'fa-solid fa-chart-line', text: 'Business Services', href: '\/businessservices' },\n\t\t\t{ icon: 'fa-solid fa-shield', text: 'Insurance Services', href: '\/insurance-center' }\n\t\t];\n\n\t\tconst itemsPerPage = 6;\n\t\tconst totalPages = Math.ceil(items.length \/ itemsPerPage);\n\n\t\tconst navigate = (direction) => {\n\t\t\tsetCurrentPage((prev) => (prev + direction + totalPages) % totalPages);\n\t\t};\n\n\t\tconst visibleItems = items.slice(\n\t\t\tcurrentPage * itemsPerPage,\n\t\t\t(currentPage + 1) * itemsPerPage\n\t\t);\n\n\t\treturn (\n\t\t\t<div className=\"max-w-6xl mx-auto px-4 py-8\">\n\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() => navigate(-1)}\n\t\t\t\t\t\tclassName=\"absolute -left-4 top-1\/2 -translate-y-1\/2 bg-gradient-to-r from-[#00475f] to-[#006184] text-white rounded-full p-2 shadow-lg hover:opacity-90 transition-opacity z-10 w-10 h-10 flex items-center justify-center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<i className=\"fa-solid fa-chevron-left\"><\/i>\n\t\t\t\t\t<\/button>\n\n\t\t\t\t\t<div className=\"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-4\">\n\t\t\t\t\t\t{visibleItems.map((item, index) => (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={item.href}\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tclassName=\"bg-white rounded-lg p-6 shadow-md hover:-translate-y-1 hover:shadow-lg transition-all duration-300 flex flex-col items-center justify-center min-h-48 group no-underline\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<i className={`${item.icon} text-3xl mb-4 text-[#00475f] group-hover:scale-110 transition-transform`}><\/i>\n\t\t\t\t\t\t\t\t<p className=\"text-center font-semibold text-sm text-gray-800 group-hover:text-[#00475f] transition-colors\">\n\t\t\t\t\t\t\t\t\t{item.text}\n\t\t\t\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t))}\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() => navigate(1)}\n\t\t\t\t\t\tclassName=\"absolute -right-4 top-1\/2 -translate-y-1\/2 bg-gradient-to-r from-[#00475f] to-[#006184] text-white rounded-full p-2 shadow-lg hover:opacity-90 transition-opacity z-10 w-10 h-10 flex items-center justify-center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<i className=\"fa-solid fa-chevron-right\"><\/i>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div className=\"flex justify-center space-x-2 mt-6\">\n\t\t\t\t\t{[...Array(totalPages)].map((_, index) => (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tonClick={() => setCurrentPage(index)}\n\t\t\t\t\t\t\tclassName={`w-2 h-2 rounded-full transition-colors ${\n\t\t\t\t\t\t\t\tcurrentPage === index ? 'bg-[#00475f]' : 'bg-gray-300'\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\/>\n\t\t\t\t\t))}\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t);\n\t}\n\n\t\/\/ Render the app\n\tconst root = ReactDOM.createRoot(document.getElementById('root'));\n\troot.render(<IconCarousel \/>);\n<\/script>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-3\" data-row=\"script-row-unique-3\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-3\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row style-color-gyho-bg vc_custom_1663605428041 row-container\" style=\"padding-top: 20px ;padding-bottom: 20px ;\" id=\"row-unique-4\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-middle pos-left align_left column_parent col-lg-6 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" ><div class=\"empty-space empty-half\" ><span class=\"empty-space-inner\"><\/span><\/div>\n<div class=\"uncode_text_column\" ><\/p>\n<h2>\u00bfPor qu\u00e9 Elegir una Cooperativa de Cr\u00e9dito?<\/h2>\n<h5>La propiedad de los miembros marca la diferencia<\/h5>\n<p>\n<\/div>\r\n\t\t\t<div class=\"ult_dual_button  ult-adjust-bottom-margin to-left  msapp\"  data-response=\"off\" id=\"ult_btn_3260212833\">\r\n\r\n\t\t\t<div id=\"dualbtn-9787\" class=\"ulitmate_dual_buttons ult-dual-btn3 ult_main_dualbtn\" data-bcolor=\"#333333\"data-bhcolor=\"\">\r\n\r\n\t\t\t<div class=\"ult_dualbutton-wrapper btn-inline place-template bt1\"><a href=\"\/es\/join-us\/\" title=\"El enlace se abrir\u00e1 en una nueva pesta\u00f1a.\" target=\"_blank\" rel=\"noopener\"  class=\"ult_ivan_button round-square with-icon icon-before with-text place-template ult_dual1\" style=\";margin-right:px;;background-color:#00475f !important;; border-color:#333333;border-style:;border-width:0px;border-radius:10px;;\">\r\n\t\t\t<span class=\"ult-dual-btn-1 Style 2\" style=\"\"  data-bgcolor=\"#00475f\" data-bghovercolor=\"#025870\" data-icon_color=\"#ffffff\" data-icon_hover_color=\"#eaeaea\" data-textcolor=\"#ffffff\" data-texthovercolor=\"#eaeaea\" data-iconbgcolor=\"transperent\" data-iconbghovercolor=\"transperent\" data-iconborder=\"transperent\" data-iconhoverborder=\"transperent\" >\r\n\t\t\t<span class=\"icon-simple icon-left1 ult_btn1span\"  style=\"; \">\n<span class=\"aio-icon btn1icon none msapp\"  style=\"color:#ffffff;font-size:16px;\">\n\t<i class=\"Defaults-user-plus\" ><\/i>\n<\/span><\/span>\r\n\t\t\t<span class=\"text-btn ult-dual-button-title ult-responsive\"  data-ultimate-target='#dualbtn-9787 .ult-dual-button-title'  data-responsive-json-new='{\"font-size\":\"desktop:15px;\",\"line-height\":\"desktop:15px;\"}'  style=\"font-weight:normal;color:#ffffff;\">\u00danete hoy<\/span>\r\n\r\n\t\t\t<\/span>\r\n\t\t\t<\/a><span class=\"middle-text\" style=\"line-height: 1.8em;color:#ffffff;background-color:#333333;border-width:0px;\">\r\n\t\t\t<span class=\"middle-inner\"  >o<\/span>\r\n\t\t\t<\/span>\r\n\r\n\t\t\t<\/div>\r\n\r\n\t\t\t<div class=\"ult_dualbutton-wrapper btn-inline place-template btn2\"><a href=\"\/es\/about\/\" title=\"El enlace se abrir\u00e1 en una nueva pesta\u00f1a.\" target=\"_blank\" rel=\"noopener\"  class=\"ult_ivan_button round-square with-icon icon-after with-text place-template ult_dual2\"  style=\";background-color:#03617a !important;;margin-left:px;;border-color:#333333;border-style:;border-width:0px;border-radius:10px;\">\r\n\t\t\t<span class=\"ult-dual-btn-2 Style 2\"  data-bgcolor=\"#03617a\" data-bghovercolor=\"#0982a3\" data-icon_color=\"#ffffff\" data-icon_hover_color=\"#eaeaea\" data-textcolor=\"#ffffff\" data-texthovercolor=\"#eaeaea\" data-iconbgcolor=\"transperent\" data-iconbghovercolor=\"transperent\" data-iconborder=\"transperent\" data-iconhoverborder=\"transperent\" >\r\n\t\t\t<span class=\"text-btn ult-dual-button-title\" style=\"font-weight:normal;color:#ffffff;\">M\u00e1s informaci\u00f3n<\/span>\r\n\r\n\t\t\t<span class=\"icon-simple icon-right2 ult_btn1span\"  style=\"; \">\n<span class=\"aio-icon btn1icon none\"  style=\"color:#ffffff;font-size:16px;display:inline-block;\">\n\t<i class=\"Defaults-bank institution university\" ><\/i>\n<\/span><\/span>\r\n\t\t\t<\/span>\r\n\t\t\t<\/a><\/div>\r\n\t\t\t<\/div>\r\n\t\t\t<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-6 single-internal-gutter\"><div class=\"uncol style-dark\"  ><div class=\"uncoltable\"><div class=\"uncell  vc_custom_1475175688940 border-color-186053-color no-block-padding\" style=\"border-style: solid;border-top-width: 2px ;border-right-width: 2px ;border-bottom-width: 2px ;border-left-width: 2px ;padding-top: 25px ;padding-right: 25px ;padding-bottom: 25px ;padding-left: 25px ;\" ><div class=\"column-background background-element\" style=\"opacity: 1;\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"background-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"background-inner\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"block-bg-overlay style-color-xsdn-bg\" style=\"opacity: 0.3;\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/div><div class=\"uncont\" ><div class=\"uncode_text_column\" ><\/p>\n<p style=\"color: #031c32;\">Los ingresos de la cooperativa de cr\u00e9dito, despu\u00e9s de gastos y reservas, se devuelven directamente a los miembros en forma de tasas m\u00e1s bajas en pr\u00e9stamos, mayores dividendos en ahorros y muchos servicios sin cargos. Cada miembro principal tiene un voto para la Junta Directiva de la cooperativa de cr\u00e9dito, sin importar cu\u00e1nto tenga depositado. No existe un grupo selecto de accionistas o propietarios que obtenga m\u00e1s beneficios que los dem\u00e1s. Todos los miembros se benefician, tanto individualmente como colectivamente.<\/p>\n<p style=\"color: #031c32;\">M\u00e1s de 85 millones de estadounidenses pertenecen a cooperativas de cr\u00e9dito. Las investigaciones muestran que los consumidores est\u00e1n m\u00e1s satisfechos con las cooperativas de cr\u00e9dito que con cualquier otro proveedor de servicios financieros.<\/p>\n<p>\n<\/div><\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-4\" data-row=\"script-row-unique-4\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-4\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row style-color-gyho-bg vc_custom_1663605428041 row-container\" style=\"padding-top: 20px ;padding-bottom: 20px ;\" id=\"row-unique-5\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-middle pos-left align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" >\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!-- WordPress Blog Posts Paging System -->\n<div id=\"custom-blog-paging\" class=\"custom-blog-system\">\n    <style>\n        \/* Scoped styles to prevent interference with WordPress CSS *\/\n        #custom-blog-paging {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            color: #333;\n            width: 100%;\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: 20px 0;\n            scroll-margin-top: 100px; \/* Add scroll margin to prevent scrolling under fixed headers *\/\n        }\n        \n        \/* Rest of your CSS remains the same... *\/\n        #custom-blog-paging * {\n            box-sizing: border-box;\n        }\n        \n        #custom-blog-paging .blog-container-title {\n            color: #00475f;\n            text-align: center;\n            margin-bottom: 30px;\n            font-size: 2.5rem;\n            font-weight: bold;\n        }\n        \n        \/* Category Filter Styles *\/\n        #custom-blog-paging .category-filter {\n            display: flex;\n            flex-wrap: wrap;\n            justify-content: center;\n            gap: 10px;\n            margin-bottom: 30px;\n        }\n        \n        #custom-blog-paging .category-button {\n            background-color: #f5f5f5;\n            color: #333;\n            border: 2px solid #e0e0e0;\n            border-radius: 20px;\n            padding: 6px 15px;\n            font-size: 0.9rem;\n            cursor: pointer;\n            transition: all 0.2s ease;\n        }\n        \n        #custom-blog-paging .category-button:hover {\n            background-color: #eaaf00;\n            color: #00475f;\n            border-color: #eaaf00;\n        }\n        \n        #custom-blog-paging .category-button.active {\n            background-color: #00475f;\n            color: white;\n            border-color: #00475f;\n        }\n        \n        #custom-blog-paging .blog-grid {\n            display: grid;\n            grid-template-columns: repeat(3, 1fr);\n            gap: 25px;\n            margin-bottom: 40px;\n        }\n        \n        #custom-blog-paging .blog-card {\n            background-color: #fff;\n            border-radius: 8px;\n            overflow: hidden;\n            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n            transition: all 0.3s ease;\n        }\n        \n        #custom-blog-paging .blog-card:hover {\n            transform: translateY(-5px);\n            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);\n        }\n        \n        #custom-blog-paging .blog-image {\n            height: 200px;\n            overflow: hidden;\n            position: relative;\n            background-color: #f5f5f5;\n        }\n        \n        #custom-blog-paging .blog-image img {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n            transition: all 0.3s ease;\n        }\n        \n        #custom-blog-paging .blog-card:hover .blog-image img {\n            transform: scale(1.05);\n        }\n        \n        \/* Placeholder shimmer effect *\/\n        #custom-blog-paging .image-placeholder {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);\n            background-size: 200% 100%;\n            animation: shimmer 1.5s infinite;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n        \n        #custom-blog-paging .placeholder-icon {\n            color: #00475f;\n            opacity: 0.3;\n            font-size: 48px;\n        }\n        \n        @keyframes shimmer {\n            0% {\n                background-position: -200% 0;\n            }\n            100% {\n                background-position: 200% 0;\n            }\n        }\n        \n        #custom-blog-paging .blog-content {\n            padding: 20px;\n        }\n        \n        #custom-blog-paging .blog-category {\n            display: inline-block;\n            background-color: #eaaf00;\n            color: #00475f;\n            font-weight: bold;\n            padding: 5px 10px;\n            border-radius: 4px;\n            font-size: 0.8rem;\n            margin-bottom: 10px;\n        }\n        \n        #custom-blog-paging .blog-title {\n            margin-bottom: 10px;\n            font-size: 1.2rem;\n            line-height: 1.4;\n        }\n        \n        #custom-blog-paging .blog-title a {\n            color: #00475f;\n            text-decoration: none;\n            transition: all 0.3s ease;\n        }\n        \n        #custom-blog-paging .blog-title a:hover {\n            color: #eaaf00;\n        }\n        \n        #custom-blog-paging .blog-image a {\n            display: block;\n            height: 100%;\n            width: 100%;\n        }\n        \n        #custom-blog-paging .blog-excerpt {\n            color: #666;\n            margin-bottom: 15px;\n            line-height: 1.5;\n            display: -webkit-box;\n            -webkit-line-clamp: 3;\n            -webkit-box-orient: vertical;\n            overflow: hidden;\n        }\n        \n        #custom-blog-paging .blog-excerpt p {\n            margin: 0;\n        }\n        \n        #custom-blog-paging .blog-meta {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            font-size: 0.85rem;\n            color: #777;\n        }\n        \n        #custom-blog-paging .read-more {\n            color: #00475f;\n            font-weight: bold;\n            text-decoration: none;\n            transition: all 0.3s ease;\n        }\n        \n        #custom-blog-paging .read-more:hover {\n            color: #eaaf00;\n        }\n        \n        #custom-blog-paging .pagination {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            gap: 10px;\n            margin-top: 30px;\n        }\n        \n        #custom-blog-paging .pagination-button {\n            background-color: #00475f;\n            color: white;\n            border: none;\n            padding: 8px 15px;\n            border-radius: 4px;\n            cursor: pointer;\n            transition: all 0.3s ease;\n        }\n        \n        #custom-blog-paging .pagination-button:hover {\n            background-color: #eaaf00;\n        }\n        \n        #custom-blog-paging .pagination-button:disabled {\n            background-color: #ccc;\n            cursor: not-allowed;\n        }\n        \n        #custom-blog-paging .page-number {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            width: 35px;\n            height: 35px;\n            border-radius: 50%;\n            background-color: white;\n            border: 2px solid #00475f;\n            color: #00475f;\n            font-weight: bold;\n            cursor: pointer;\n            transition: all 0.3s ease;\n        }\n        \n        #custom-blog-paging .page-number:hover,\n        #custom-blog-paging .page-number.active {\n            background-color: #00475f;\n            color: white;\n        }\n        \n        #custom-blog-paging .loader {\n            width: 48px;\n            height: 48px;\n            border: 5px solid #00475f;\n            border-bottom-color: #eaaf00;\n            border-radius: 50%;\n            display: none;\n            margin: 20px auto;\n            box-sizing: border-box;\n            animation: custom-blog-rotation 1s linear infinite;\n        }\n        \n        @keyframes custom-blog-rotation {\n            0% { transform: rotate(0deg); }\n            100% { transform: rotate(360deg); }\n        }\n        \n        \/* No posts message *\/\n        #custom-blog-paging .no-posts-message {\n            text-align: center;\n            padding: 30px;\n            font-size: 1.2rem;\n            color: #666;\n            background-color: #f9f9f9;\n            border-radius: 8px;\n            margin: 20px 0;\n        }\n        \n        \/* Responsive adjustments *\/\n        @media (max-width: 1024px) {\n            #custom-blog-paging .blog-grid {\n                grid-template-columns: repeat(2, 1fr);\n            }\n        }\n        \n        @media (max-width: 768px) {\n            #custom-blog-paging {\n                scroll-margin-top: 50px; \/* Adjust scroll margin for mobile *\/\n            }\n            \n            #custom-blog-paging .blog-grid {\n                grid-template-columns: 1fr;\n            }\n            \n            #custom-blog-paging .pagination {\n                flex-wrap: wrap;\n                justify-content: center;\n            }\n            \n            #custom-blog-paging .page-number {\n                width: 32px;\n                height: 32px;\n                font-size: 0.9rem;\n            }\n            \n            #custom-blog-paging .pagination-button {\n                padding: 6px 12px;\n                font-size: 0.9rem;\n            }\n        }\n    <\/style>\n    \n    <h3 class=\"blog-container-title\">Consejos y conocimientos que le ayudar\u00e1n a prosperar<\/h3>\n    \n    <div class=\"category-filter\" id=\"custom-blog-categories\">\n        <!-- Category filters will be loaded here -->\n        <div class=\"loader\" style=\"display: none;\"><\/div>\n    <\/div>\n    \n    <div class=\"blog-grid\" id=\"custom-blog-container\">\n        <!-- Blog posts will be loaded here -->\n    <\/div>\n    \n    <div id=\"custom-blog-loader\" class=\"loader\"><\/div>\n    \n    <div class=\"pagination\" id=\"custom-blog-pagination\">\n        <!-- Pagination will be generated here -->\n    <\/div>\n    \n    <script>\n    (function() {\n        \/\/ Immediately invoked function expression to avoid global scope pollution\n        \n        \/\/ Configuration\n        const postsPerPage = 3;\n        let totalPosts = 0;\n        let totalPages = 0;\n        let currentPage = 1;\n        let selectedCategories = [21, 34]; \/\/ Array to store selected category IDs\n        \n        \/\/ You can specify default categories to show here (using IDs)\n        \/\/ For example, to only show posts from categories with IDs 5 and 9:\n        \/\/ const defaultCategories = [5, 9]; \n        \/\/ Leave empty to show all categories\n        const defaultCategories = [];\n        \n        \/\/ Set this to true to disable automatic scrolling when changing pages\n        const disableAutoScroll = false;\n        \n        \/\/ Smart scroll function that works better on mobile\n        function smartScroll(elementId) {\n            if (disableAutoScroll) return;\n            \n            const element = document.getElementById(elementId);\n            if (!element) return;\n            \n            \/\/ Detect if we're on mobile\n            const isMobile = window.innerWidth <= 768;\n            \n            \/\/ Calculate position\n            const rect = element.getBoundingClientRect();\n            const isVisible = (\n                rect.top >= 0 &&\n                rect.left >= 0 &&\n                rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n                rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n            );\n            \n            \/\/ Only scroll if element is not already visible in viewport\n            if (!isVisible) {\n                \/\/ On mobile, scroll with less offset to avoid issues with fixed headers\n                if (isMobile) {\n                    \/\/ Scroll to a position that doesn't go all the way to the top\n                    window.scrollTo({\n                        top: window.pageYOffset + rect.top - 60,\n                        behavior: 'smooth'\n                    });\n                } else {\n                    \/\/ On desktop, use the built-in scrollIntoView with start position\n                    element.scrollIntoView({ \n                        behavior: 'smooth', \n                        block: 'start'\n                    });\n                }\n            }\n        }\n        \n        \/\/ Fetch WordPress categories\n        function fetchCategories() {\n            const categoriesContainer = document.getElementById('custom-blog-categories');\n            const loader = categoriesContainer.querySelector('.loader');\n            loader.style.display = 'block';\n            \n            \/\/ Get all categories from WordPress\n            fetch('\/wp-json\/wp\/v2\/categories?per_page=100')\n                .then(response => {\n                    if (!response.ok) {\n                        throw new Error(`HTTP error! Status: ${response.status}`);\n                    }\n                    return response.json();\n                })\n                .then(categories => {\n                    \/\/ Hide loader\n                    loader.style.display = 'none';\n                    \n                    \/\/ Only use categories that have posts\n                    const validCategories = categories.filter(cat => cat.count > 0);\n                    \n                    if (validCategories.length > 0) {\n                        \/\/ Create \"All\" button\n                        const allButton = document.createElement('button');\n                        allButton.className = 'category-button' + (selectedCategories.length === 0 ? ' active' : '');\n                        allButton.innerText = 'All';\n                        allButton.addEventListener('click', () => {\n                            selectedCategories = [];\n                            updateCategoryButtons();\n                            fetchWordPressPosts(1); \/\/ Reset to first page\n                            \n                            \/\/ Use smart scroll\n                            smartScroll('custom-blog-container');\n                        });\n                        categoriesContainer.appendChild(allButton);\n                        \n                        \/\/ Create a button for each category\n                        validCategories.forEach(category => {\n                            const button = document.createElement('button');\n                            button.className = 'category-button';\n                            if (selectedCategories.includes(category.id)) {\n                                button.classList.add('active');\n                            }\n                            button.innerText = category.name;\n                            button.dataset.categoryId = category.id;\n                            button.addEventListener('click', () => {\n                                \/\/ Toggle category selection\n                                const index = selectedCategories.indexOf(category.id);\n                                if (index === -1) {\n                                    selectedCategories.push(category.id);\n                                } else {\n                                    selectedCategories.splice(index, 1);\n                                }\n                                updateCategoryButtons();\n                                fetchWordPressPosts(1); \/\/ Reset to first page\n                                \n                                \/\/ Use smart scroll\n                                smartScroll('custom-blog-container');\n                            });\n                            categoriesContainer.appendChild(button);\n                        });\n                    }\n                    \n                    \/\/ Initialize with default categories if specified\n                    if (defaultCategories.length > 0) {\n                        selectedCategories = [...defaultCategories];\n                        updateCategoryButtons();\n                    }\n                })\n                .catch(error => {\n                    console.error('Error fetching categories:', error);\n                    loader.style.display = 'none';\n                });\n        }\n        \n        \/\/ Update active state of category buttons\n        function updateCategoryButtons() {\n            const allButtons = document.querySelectorAll('#custom-blog-categories .category-button');\n            \n            allButtons.forEach(button => {\n                if (!button.dataset.categoryId) {\n                    \/\/ \"All\" button\n                    button.classList.toggle('active', selectedCategories.length === 0);\n                } else {\n                    const categoryId = parseInt(button.dataset.categoryId);\n                    button.classList.toggle('active', selectedCategories.includes(categoryId));\n                }\n            });\n        }\n        \n        \/\/ Fetch WordPress posts using REST API\n        function fetchWordPressPosts(page) {\n            \/\/ Update current page\n            currentPage = page;\n            \n            \/\/ Show loader\n            document.getElementById('custom-blog-loader').style.display = 'block';\n            \n            \/\/ Clear current posts while loading\n            document.getElementById('custom-blog-container').innerHTML = '';\n            \n            \/\/ Build the API URL with filters\n            let apiUrl = `\/wp-json\/wp\/v2\/posts?page=${page}&per_page=${postsPerPage}&_embed`;\n            \n            \/\/ Add category filter if categories are selected\n            if (selectedCategories.length > 0) {\n                apiUrl += `&categories=${selectedCategories.join(',')}`;\n            }\n            \n            \/\/ Use WordPress REST API to get posts\n            fetch(apiUrl)\n                .then(response => {\n                    if (!response.ok) {\n                        throw new Error(`HTTP error! Status: ${response.status}`);\n                    }\n                    \n                    \/\/ Get total posts and pages from headers\n                    totalPosts = parseInt(response.headers.get('X-WP-Total') || '0');\n                    totalPages = parseInt(response.headers.get('X-WP-TotalPages') || '0');\n                    \n                    return response.json();\n                })\n                .then(posts => {\n                    \/\/ Process WordPress data and render\n                    renderWordPressPosts(posts);\n                    \n                    \/\/ Hide loader\n                    document.getElementById('custom-blog-loader').style.display = 'none';\n                    \n                    \/\/ Update pagination\n                    updatePagination();\n                })\n                .catch(error => {\n                    console.error('Error fetching posts:', error);\n                    \n                    \/\/ Display error message\n                    const container = document.getElementById('custom-blog-container');\n                    container.innerHTML = `\n                        <div class=\"no-posts-message\">\n                            Unable to load posts. Please try again later.\n                        <\/div>\n                    `;\n                    \n                    \/\/ Hide loader\n                    document.getElementById('custom-blog-loader').style.display = 'none';\n                });\n        }\n        \n        \/\/ Process and render WordPress posts\n        function renderWordPressPosts(posts) {\n            const container = document.getElementById('custom-blog-container');\n            \n            \/\/ If no posts, show message\n            if (!posts || posts.length === 0) {\n                container.innerHTML = `\n                    <div class=\"no-posts-message\">\n                        No posts found.\n                    <\/div>\n                `;\n                return;\n            }\n            \n            \/\/ Clear container\n            container.innerHTML = '';\n            \n            \/\/ Process each post\n            posts.forEach(post => {\n                \/\/ Get featured image if available\n                let hasImage = false;\n                let imageUrl = '';\n                \n                if (post._embedded && \n                    post._embedded['wp:featuredmedia'] && \n                    post._embedded['wp:featuredmedia'][0] &&\n                    post._embedded['wp:featuredmedia'][0].source_url) {\n                    imageUrl = post._embedded['wp:featuredmedia'][0].source_url;\n                    hasImage = true;\n                }\n                \n                \/\/ Get category if available\n                let category = 'Uncategorized';\n                if (post._embedded && \n                    post._embedded['wp:term'] && \n                    post._embedded['wp:term'][0] && \n                    post._embedded['wp:term'][0].length > 0) {\n                    category = post._embedded['wp:term'][0][0].name;\n                }\n                \n                \/\/ Format date\n                const postDate = new Date(post.date);\n                const formattedDate = postDate.toLocaleDateString();\n                \n                \/\/ Create post element\n                const postElement = document.createElement('div');\n                postElement.className = 'blog-card';\n                \n                \/\/ Create image HTML based on whether image exists\n                let imageHTML = '';\n                if (hasImage) {\n                    imageHTML = `<img decoding=\"async\" src=\"${imageUrl}\" alt=\"${post.title.rendered}\">`;\n                } else {\n                    imageHTML = `<div class=\"image-placeholder\"><div class=\"placeholder-icon\">&#x1F4F7;<\/div><\/div>`;\n                }\n                \n                postElement.innerHTML = `\n                    <div class=\"blog-image\">\n                        <a href=\"${post.link}\" aria-label=\"${post.title.rendered}\">\n                            ${imageHTML}\n                        <\/a>\n                    <\/div>\n                    <div class=\"blog-content\">\n                        <span class=\"blog-category\">${category}<\/span>\n                        <h3 class=\"blog-title\">\n                            <a href=\"${post.link}\">${post.title.rendered}<\/a>\n                        <\/h3>\n                        <div class=\"blog-excerpt\">${post.excerpt.rendered}<\/div>\n                        <div class=\"blog-meta\">\n                            <span>${formattedDate}<\/span>\n                            <a href=\"${post.link}\" class=\"read-more\">Read More<\/a>\n                        <\/div>\n                    <\/div>\n                `;\n                \n                container.appendChild(postElement);\n            });\n        }\n        \n        \/\/ Update pagination controls\n        function updatePagination() {\n            const paginationContainer = document.getElementById('custom-blog-pagination');\n            paginationContainer.innerHTML = '';\n            \n            \/\/ Only show pagination if we have more than one page\n            if (totalPages <= 1) {\n                return;\n            }\n            \n            \/\/ Previous button\n            const prevButton = document.createElement('button');\n            prevButton.className = 'pagination-button';\n            prevButton.innerText = 'Previous';\n            prevButton.disabled = currentPage === 1;\n            prevButton.addEventListener('click', () => {\n                if (currentPage > 1) {\n                    currentPage--;\n                    fetchWordPressPosts(currentPage);\n                    \n                    \/\/ Use smart scroll\n                    smartScroll('custom-blog-container');\n                }\n            });\n            paginationContainer.appendChild(prevButton);\n            \n            \/\/ Page numbers\n            const maxPageButtons = 5;\n            let startPage = Math.max(1, currentPage - Math.floor(maxPageButtons \/ 2));\n            let endPage = Math.min(totalPages, startPage + maxPageButtons - 1);\n            \n            if (endPage - startPage + 1 < maxPageButtons) {\n                startPage = Math.max(1, endPage - maxPageButtons + 1);\n            }\n            \n            for (let i = startPage; i <= endPage; i++) {\n                const pageButton = document.createElement('div');\n                pageButton.className = `page-number${i === currentPage ? ' active' : ''}`;\n                pageButton.innerText = i;\n                pageButton.addEventListener('click', () => {\n                    if (i !== currentPage) {\n                        currentPage = i;\n                        fetchWordPressPosts(currentPage);\n                        \n                        \/\/ Use smart scroll\n                        smartScroll('custom-blog-container');\n                    }\n                });\n                paginationContainer.appendChild(pageButton);\n            }\n            \n            \/\/ Next button\n            const nextButton = document.createElement('button');\n            nextButton.className = 'pagination-button';\n            nextButton.innerText = 'Next';\n            nextButton.disabled = currentPage === totalPages;\n            nextButton.addEventListener('click', () => {\n                if (currentPage < totalPages) {\n                    currentPage++;\n                    fetchWordPressPosts(currentPage);\n                    \n                    \/\/ Use smart scroll\n                    smartScroll('custom-blog-container');\n                }\n            });\n            paginationContainer.appendChild(nextButton);\n        }\n        \n        \/\/ Initialize the page\n        function init() {\n            \/\/ First fetch categories, then fetch posts\n            fetchCategories();\n            fetchWordPressPosts(currentPage);\n        }\n        \n        \/\/ Initialize on DOM ready\n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', init);\n        } else {\n            init();\n        }\n    })();\n    <\/script>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-5\" data-row=\"script-row-unique-5\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-5\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row style-color-xsdn-bg vc_custom_1671547956105 row-container\" style=\"padding-top: 20px ;padding-bottom: 20px ;\" id=\"row-unique-6\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" ><\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-6\" data-row=\"script-row-unique-6\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-6\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row style-color-xsdn-bg vc_custom_1671547956105 row-container\" style=\"padding-top: 20px ;padding-bottom: 20px ;\" id=\"row-unique-7\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" ><div id=\"ultimate-heading-868969d9797cd65fd\" class=\"uvc-heading ult-adjust-bottom-margin ultimate-heading-868969d9797cd65fd uvc-6427\" data-hspacer=\"no_spacer\"  data-halign=\"center\" style=\"text-align:center\"><div class=\"uvc-heading-spacer no_spacer\" style=\"top\"><\/div><div class=\"uvc-main-heading ult-responsive\"  data-ultimate-target='.uvc-heading.ultimate-heading-868969d9797cd65fd h3'  data-responsive-json-new='{\"font-size\":\"\",\"line-height\":\"\"}' ><h3 style=\"font-weight:normal;\">La satisfacci\u00f3n de nuestros miembros es importante<\/h3><\/div><\/div>\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/react\/18.2.0\/umd\/react.production.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/react-dom\/18.2.0\/umd\/react-dom.production.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/babel-standalone\/7.23.5\/babel.min.js\"><\/script>\n    <script>\n        tailwind.config = {\n            theme: {\n                extend: {\n                    colors: {\n                        brand: '#00475f',\n                    },\n                },\n            },\n        }\n    <\/script>\n\n    <div id=\"reviews-root\"><\/div>\n\n    <script type=\"text\/babel\">\n        const Star = () => (\n            <svg className=\"w-5 h-5 text-yellow-400 fill-current\" viewBox=\"0 0 20 20\">\n                <path d=\"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z\" \/>\n            <\/svg>\n        );\n\n        const ChevronLeft = () => (\n            <svg className=\"w-6 h-6 text-white\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 19l-7-7 7-7\" \/>\n            <\/svg>\n        );\n\n        const ChevronRight = () => (\n            <svg className=\"w-6 h-6 text-white\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" \/>\n            <\/svg>\n        );\n\n        const ReviewCard = ({ review, isExpanded, onToggle, isCurrent }) => {\n            const textLength = review.text.length;\n            const shouldTruncate = textLength > 150;\n            const truncatedText = shouldTruncate ? review.text.slice(0, 150) + \"...\" : review.text;\n\n            return (\n                <div \n                    className={`transition-all duration-300 ${\n                        isExpanded \n                            ? 'w-full' \n                            : isCurrent \n                                ? 'flex-1'\n                                : 'flex-1 opacity-0 w-0 p-0 m-0 overflow-hidden'\n                    }`}\n                >\n                    <div className={`bg-white rounded-lg shadow-lg transition-all duration-300 ${\n                        isExpanded ? 'p-8' : 'p-6'\n                    } hover:shadow-xl`}>\n                        <div className=\"flex justify-between items-start\">\n                            <div className=\"flex mb-2\">\n                                {[...Array(5)].map((_, index) => (\n                                    <Star key={index} \/>\n                                ))}\n                            <\/div>\n                            {isExpanded && (\n                                <button \n                                    onClick={onToggle}\n                                    className=\"text-gray-500 hover:text-gray-700\"\n                                >\n                                    <svg className=\"w-6 h-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                                        <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" \/>\n                                    <\/svg>\n                                <\/button>\n                            )}\n                        <\/div>\n                        \n                        <div className={`text-gray-700 mb-4 ${isExpanded ? '' : 'line-clamp-3'}`}>\n                            {isExpanded ? review.text : truncatedText}\n                        <\/div>\n                        \n                        {!isExpanded && shouldTruncate && (\n                            <button \n                                onClick={onToggle}\n                                className=\"text-brand hover:text-opacity-80 text-sm font-medium mb-4\"\n                            >\n                                Read more\n                            <\/button>\n                        )}\n\n                        <div className=\"mt-auto\">\n                            <p className=\"font-semibold text-gray-900\">{review.author_name}<\/p>\n                            <p className=\"text-sm text-gray-600\">{review.locationName}<\/p>\n                            <p className=\"text-xs text-gray-400 mt-1\">\n                                {new Date(review.time * 1000).toLocaleDateString()}\n                            <\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            );\n        };\n\n        const ReviewCarousel = () => {\n            const [reviews, setReviews] = React.useState([]);\n            const [currentIndex, setCurrentIndex] = React.useState(0);\n            const [loading, setLoading] = React.useState(true);\n            const [error, setError] = React.useState(null);\n            const [expandedReviewId, setExpandedReviewId] = React.useState(null);\n            \n            const reviewsPerPage = 4;\n            const reviewsPerLocation = 2;\n            \n            const businessIds = [\n                'ChIJKeYDkGyp2YgR6Yhwybjwyec',\n                'ChIJx8BXoX4H2YgRvcush47VrqI',\n                'ChIJhZ4WHcQG2YgRsHv3z_lWQWM',\n                'ChIJkdwXuFkA2YgRD9Xm3_VXOjs',\n                'ChIJX53uVXoC2YgRshitVW-fEzw',\n                'ChIJoU2afWem2YgR0NevQQqwcyE',\n                'ChIJa5eB716p2YgRYSjVmXBw1N0',\n                'ChIJQ_6yubME2YgRkDUgklhP_-c'\n            ];\n\n            const shuffleArray = (array) => {\n                const newArray = [...array];\n                for (let i = newArray.length - 1; i > 0; i--) {\n                    const j = Math.floor(Math.random() * (i + 1));\n                    [newArray[i], newArray[j]] = [newArray[j], newArray[i]];\n                }\n                return newArray;\n            };\n\n            React.useEffect(() => {\n                const fetchReviews = async () => {\n                    try {\n                        setLoading(true);\n                        const service = new google.maps.places.PlacesService(document.createElement('div'));\n                        const allReviews = [];\n\n                        for (const placeId of businessIds) {\n                            try {\n                                const request = {\n                                    placeId: placeId,\n                                    fields: ['reviews', 'name']\n                                };\n\n                                const placeResult = await new Promise((resolve, reject) => {\n                                    service.getDetails(request, (place, status) => {\n                                        if (status === google.maps.places.PlacesServiceStatus.OK) {\n                                            resolve(place);\n                                        } else {\n                                            reject(status);\n                                        }\n                                    });\n                                });\n\n                                const locationReviews = (placeResult.reviews || [])\n                                    .filter(review => review.rating === 5)\n                                    .map(review => ({\n                                        ...review,\n                                        locationName: placeResult.name\n                                    }));\n\n                                const shuffledReviews = shuffleArray(locationReviews);\n                                allReviews.push(...shuffledReviews.slice(0, reviewsPerLocation));\n\n                            } catch (locationError) {\n                                console.error(`Error fetching reviews for location ${placeId}:`, locationError);\n                                continue;\n                            }\n                        }\n\n                        setReviews(shuffleArray(allReviews));\n                        setLoading(false);\n                    } catch (error) {\n                        console.error('Error fetching reviews:', error);\n                        setError('Failed to load reviews. Please try again later.');\n                        setLoading(false);\n                    }\n                };\n\n                if (window.google && window.google.maps) {\n                    fetchReviews();\n                } else {\n                    const checkGoogleMaps = setInterval(() => {\n                        if (window.google && window.google.maps) {\n                            clearInterval(checkGoogleMaps);\n                            fetchReviews();\n                        }\n                    }, 100);\n\n                    setTimeout(() => {\n                        clearInterval(checkGoogleMaps);\n                        if (!window.google || !window.google.maps) {\n                            setError('Failed to load Google Maps. Please refresh the page.');\n                            setLoading(false);\n                        }\n                    }, 10000);\n                }\n            }, []);\n\n            const maxIndex = Math.max(0, Math.ceil(reviews.length \/ reviewsPerPage) - 1);\n            \n            const nextSlide = () => {\n                setExpandedReviewId(null);\n                setCurrentIndex(prev => Math.min(prev + 1, maxIndex));\n            };\n            \n            const prevSlide = () => {\n                setExpandedReviewId(null);\n                setCurrentIndex(prev => Math.max(prev - 1, 0));\n            };\n\n            const toggleReview = (reviewId) => {\n                setExpandedReviewId(expandedReviewId === reviewId ? null : reviewId);\n            };\n\n            const currentReviews = reviews.slice(\n                currentIndex * reviewsPerPage,\n                (currentIndex * reviewsPerPage) + reviewsPerPage\n            );\n\n            if (loading) {\n                return (\n                    <div className=\"w-full max-w-7xl mx-auto px-4 py-8 text-center\">\n                        <p className=\"text-brand\">Loading reviews...<\/p>\n                    <\/div>\n                );\n            }\n\n            if (error) {\n                return (\n                    <div className=\"w-full max-w-7xl mx-auto px-4 py-8 text-center\">\n                        <p className=\"text-red-600\">{error}<\/p>\n                    <\/div>\n                );\n            }\n\n            return (\n                <div className=\"w-full max-w-7xl mx-auto px-4 py-8\">\n                    <div className=\"relative\">\n                        <div className=\"flex space-x-4 mb-6\">\n                            {currentReviews.map((review) => (\n                                <ReviewCard \n                                    key={review.time}\n                                    review={review}\n                                    isExpanded={expandedReviewId === review.time}\n                                    onToggle={() => toggleReview(review.time)}\n                                    isCurrent={!expandedReviewId || expandedReviewId === review.time}\n                                \/>\n                            ))}\n                        <\/div>\n\n                        <div className=\"flex justify-center space-x-4 mt-6\">\n                            <button\n                                onClick={prevSlide}\n                                disabled={currentIndex === 0}\n                                className=\"p-2 rounded-full bg-brand hover:bg-opacity-90 disabled:opacity-50 disabled:cursor-not-allowed\"\n                            >\n                                <ChevronLeft \/>\n                            <\/button>\n                            <button\n                                onClick={nextSlide}\n                                disabled={currentIndex === maxIndex}\n                                className=\"p-2 rounded-full bg-brand hover:bg-opacity-90 disabled:opacity-50 disabled:cursor-not-allowed\"\n                            >\n                                <ChevronRight \/>\n                            <\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            );\n        };\n\n        ReactDOM.render(<ReviewCarousel \/>, document.getElementById('reviews-root'));\n    <\/script>\n\n    <script async defer\n src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyBKDPO3sdCPLUrQbFH3rZyrdH8bT9Xm1Ec&libraries=places\">\n    <\/script>\n\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"wpb_raw_code wpb_raw_js\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<script>\nvar ref = document.referrer;\nif (ref.match(\/^https?:\\\/\\\/([^\\\/]+\\.)?loanspq\\.com(\\\/|$)\/i)) {\n    amplitude.getInstance().logEvent('LOAN APP COMPLETED');\n}\n<\/script>\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!-- Conversion Pixel for [lead]- DO NOT MODIFY --><img decoding=\"async\" src=\"https:\/\/data.adxcel-ec2.com\/pixel\/?ad_log=referer&action=lead&pixid=8767e947-dcf6-42b7-86a6-ad6cfac79953\" width=\"1\" height=\"1\" border=\"0\"><!-- End of Conversion Pixel -->\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-7\" data-row=\"script-row-unique-7\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-7\"));<\/script><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"ATTENTION DEBIT CARDHOLDERS LEARN HOW TO ACTIVATE YOUR NEW DEBIT CARD. GET STARTED Important Fraud Alert for Members View + [...]","protected":false},"author":8,"featured_media":12960,"parent":0,"menu_order":24,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-13","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/pages\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/comments?post=13"}],"version-history":[{"count":3,"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/pages\/13\/revisions"}],"predecessor-version":[{"id":17376,"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/pages\/13\/revisions\/17376"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/media\/12960"}],"wp:attachment":[{"href":"https:\/\/demo2.mybscu.org\/es\/wp-json\/wp\/v2\/media?parent=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}