{"id":712,"date":"2025-07-02T08:25:37","date_gmt":"2025-07-02T08:25:37","guid":{"rendered":"https:\/\/bifa.ai\/?page_id=712"},"modified":"2025-11-29T12:51:11","modified_gmt":"2025-11-29T12:51:11","slug":"events","status":"publish","type":"page","link":"https:\/\/bifa.ai\/hi\/events\/","title":{"rendered":"\u0918\u091f\u0928\u093e\u090f\u0901"},"content":{"rendered":"<div>\n<p>    <!DOCTYPE html><br \/>\n<html lang=\"ru\"><br \/>\n<head><br \/>\n<meta charset=\"UTF-8\"><br \/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n<title>BIFA+ Events &#8211; Upcoming Tournaments &#038; Conferences<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<!-- \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0448\u0440\u0438\u0444\u0442\u044b BIFA+ \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0431\u0440\u0435\u043d\u0434\u0431\u0443\u043a\u0443 -->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@300;400;500;600;700;800;900&#038;family=Poppins:wght@300;400;500;600;700;800&#038;family=Cairo:wght@300;400;500;600;700;800&#038;family=Tajawal:wght@300;400;500;700;800&#038;display=swap\" rel=\"stylesheet\">\n<style>\n\/* =========  \u041f\u0415\u0420\u0415\u041c\u0415\u041d\u041d\u042b\u0415 - \u0421\u041e\u0412\u041c\u0415\u0421\u0422\u0418\u041c\u041e\u0421\u0422\u042c \u0421 \u0428\u0410\u041f\u041a\u041e\u0419  ========= *\/\n.bifa-events-page-wrapper {\n    \/* \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 BIFA+ *\/\n    --bifa-deep-navy: #0A1F44;\n    --bifa-heritage-gold: #D4AF37;\n    --bifa-civic-green: #1D6143;\n    --bifa-bright-white: #FFFFFF;\n    --bifa-soft-black: #1A1A1A;\n    --bifa-gray-light: #F8F9FA;\n    --bifa-gray: #6C757D;<\/p>\n<p>    \/* \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0448\u0440\u0438\u0444\u0442\u044b BIFA+ *\/\n    --bifa-font-heading: 'Montserrat', 'Cairo', sans-serif;\n    --bifa-font-body: 'Poppins', 'Tajawal', sans-serif;\n    --bifa-font-arabic: 'Cairo', 'Tajawal', 'GE SS Text', sans-serif;<\/p>\n<p>    \/* \u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u043d\u0438 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u044b *\/\n    --bifa-shadow-premium: 0 25px 80px rgba(10, 31, 68, 0.15);\n    --bifa-shadow-hover: 0 35px 100px rgba(10, 31, 68, 0.2);\n    --bifa-shadow-gold: 0 15px 40px rgba(212, 175, 55, 0.3);\n    --bifa-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}<\/p>\n<p>\/* =========  RESET - \u041d\u0415 \u0412\u041b\u0418\u042f\u0415\u041c \u041d\u0410 \u0428\u0410\u041f\u041a\u0423  ========= *\/\n.bifa-events-page-wrapper * {\n    box-sizing: border-box;\n}<\/p>\n<p>\/* \u0421\u0431\u0440\u043e\u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430, \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c \u0448\u0430\u043f\u043a\u0443 *\/\n.bifa-events-page-wrapper .bifa-events-main-content * {\n    box-sizing: border-box;\n}<\/p>\n<p>\/* =========  MAIN PAGE WRAPPER - \u0411\u0415\u0417 \u041a\u041e\u041d\u0424\u041b\u0418\u041a\u0422\u0410 \u0421 \u0428\u0410\u041f\u041a\u041e\u0419  ========= *\/\n.bifa-events-page-wrapper {\n    min-height: 100vh;\n    position: relative;\n    background: linear-gradient(180deg, \n        rgba(248, 249, 250, 0.8) 0%, \n        rgba(255, 255, 255, 1) 100%\n    );\n    width: 100vw;\n    margin-left: calc(-50vw + 50%);\n    padding: 0;\n}<\/p>\n<p>\/* =========  ANIMATED BACKGROUND  ========= *\/\n.events-page-bg-animation {\n    position: fixed;\n    width: 100%;\n    height: 100%;\n    overflow: hidden;\n    z-index: 1;\n    top: 0;\n    left: 0;\n    pointer-events: none;\n}<\/p>\n<p>\/* \u0417\u043e\u043b\u043e\u0442\u044b\u0435 \u0447\u0430\u0441\u0442\u0438\u0446\u044b *\/\n.events-page-particle {\n    position: absolute;\n    width: 3px;\n    height: 3px;\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\n    border-radius: 50%;\n    animation: floatEventsPage 25s infinite linear;\n    box-shadow: 0 0 6px rgba(212, 175, 55, 0.2);\n    opacity: 0.15;\n    will-change: transform;\n}<\/p>\n<p>@keyframes floatEventsPage {\n    0% {\n        transform: translateY(100vh) translateX(0) rotate(0deg);\n        opacity: 0;\n    }\n    10% { opacity: 0.2; }\n    90% { opacity: 0.2; }\n    100% {\n        transform: translateY(-100vh) translateX(100px) rotate(360deg);\n        opacity: 0;\n    }\n}<\/p>\n<p>\/* \u041f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0435 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b *\/\n.events-floating-shape {\n    position: absolute;\n    border-radius: 50%;\n    filter: blur(150px);\n    animation: morphFloatEvents 30s ease-in-out infinite;\n    pointer-events: none;\n    opacity: 0.4;\n}<\/p>\n<p>.events-shape-page-1 {\n    width: 500px;\n    height: 500px;\n    background: radial-gradient(circle at 30% 30%, rgba(212, 175, 55, 0.06), transparent);\n    top: -250px;\n    right: -250px;\n}<\/p>\n<p>.events-shape-page-2 {\n    width: 400px;\n    height: 400px;\n    background: radial-gradient(circle at 70% 70%, rgba(10, 31, 68, 0.04), transparent);\n    bottom: -200px;\n    left: -200px;\n    animation-delay: 10s;\n}<\/p>\n<p>.events-shape-page-3 {\n    width: 350px;\n    height: 350px;\n    background: radial-gradient(circle at 50% 50%, rgba(29, 97, 67, 0.05), transparent);\n    top: 30%;\n    left: 70%;\n    animation-delay: 20s;\n}<\/p>\n<p>@keyframes morphFloatEvents {\n    0%, 100% { \n        transform: translate(0, 0) scale(1) rotate(0deg);\n        filter: blur(150px);\n    }\n    25% { \n        transform: translate(150px, -100px) scale(1.3) rotate(90deg);\n        filter: blur(180px);\n    }\n    50% { \n        transform: translate(-100px, 150px) scale(0.7) rotate(180deg);\n        filter: blur(120px);\n    }\n    75% { \n        transform: translate(-150px, -80px) scale(1.2) rotate(270deg);\n        filter: blur(160px);\n    }\n}<\/p>\n<p>\/* =========  MAIN CONTENT - \u0410\u0414\u0410\u041f\u0422\u0410\u0426\u0418\u042f \u041f\u041e\u0414 \u0421\u0423\u0429\u0415\u0421\u0422\u0412\u0423\u042e\u0429\u0423\u042e \u0428\u0410\u041f\u041a\u0423  ========= *\/\n.bifa-events-main-content {\n    position: relative;\n    z-index: 10;\n    padding: 80px 0 60px 0;\n    width: 100%;\n}<\/p>\n<p>.bifa-events-container {\n    max-width: 1400px;\n    margin: 0 auto;\n    padding: 0 20px;\n    width: 100%;\n}<\/p>\n<p>\/* =========  PAGE HEADER  ========= *\/\n.bifa-events-page-header {\n    text-align: center;\n    margin-bottom: 80px;\n    animation: fadeInDownEvents 1.2s ease;\n}<\/p>\n<p>.bifa-events-page-title {\n    font-family: var(--bifa-font-heading);\n    font-size: clamp(3rem, 5vw, 4.5rem);\n    font-weight: 900;\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\n    -webkit-background-clip: text;\n    background-clip: text;\n    color: transparent;\n    margin-bottom: 20px;\n    text-transform: uppercase;\n    position: relative;\n    display: inline-block;\n    cursor: pointer;\n    transition: all 0.3s ease;\n}<\/p>\n<p>.bifa-events-page-title::after {\n    content: '';\n    position: absolute;\n    bottom: -15px;\n    left: 50%;\n    transform: translateX(-50%);\n    width: 0;\n    height: 4px;\n    background: linear-gradient(90deg, var(--bifa-heritage-gold), #ffd700);\n    transition: width 0.4s ease;\n}<\/p>\n<p>.bifa-events-page-title:hover {\n    transform: translateY(-5px);\n    filter: drop-shadow(0 15px 30px rgba(212, 175, 55, 0.3));\n}<\/p>\n<p>.bifa-events-page-title:hover::after {\n    width: 100%;\n}<\/p>\n<p>.bifa-events-page-subtitle {\n    font-family: var(--bifa-font-heading);\n    font-size: clamp(1.2rem, 2.5vw, 1.8rem);\n    color: var(--bifa-deep-navy);\n    font-weight: 600;\n    letter-spacing: 2px;\n    margin-bottom: 20px;\n    opacity: 0;\n    animation: fadeInUpEvents 1.2s ease 0.3s forwards;\n}<\/p>\n<p>.bifa-events-page-description {\n    max-width: 900px;\n    margin: 0 auto;\n    font-family: var(--bifa-font-body);\n    font-size: clamp(1rem, 1.5vw, 1.2rem);\n    line-height: 1.8;\n    color: #4a5568;\n    opacity: 0;\n    animation: fadeInUpEvents 1.2s ease 0.6s forwards;\n}<\/p>\n<p>\/* =========  SEARCH & FILTER BAR  ========= *\/\n.bifa-events-filter-bar {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 60px;\n    gap: 30px;\n    flex-wrap: wrap;\n    opacity: 0;\n    animation: fadeInUpEvents 1.2s ease 0.8s forwards;\n}<\/p>\n<p>.bifa-events-search-container {\n    position: relative;\n    flex: 1;\n    max-width: 400px;\n}<\/p>\n<p>.bifa-events-search-input {\n    width: 100%;\n    padding: 18px 55px 18px 25px;\n    border: 2px solid rgba(212, 175, 55, 0.2);\n    border-radius: 50px;\n    font-family: var(--bifa-font-body);\n    font-size: 1rem;\n    background: white;\n    backdrop-filter: blur(10px);\n    transition: var(--bifa-transition);\n    outline: none;\n}<\/p>\n<p>.bifa-events-search-input:focus {\n    border-color: var(--bifa-heritage-gold);\n    box-shadow: 0 10px 30px rgba(212, 175, 55, 0.2);\n}<\/p>\n<p>.bifa-events-search-btn {\n    position: absolute;\n    right: 8px;\n    top: 50%;\n    transform: translateY(-50%);\n    width: 40px;\n    height: 40px;\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\n    border: none;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    transition: var(--bifa-transition);\n}<\/p>\n<p>.bifa-events-search-btn:hover {\n    transform: translateY(-50%) scale(1.1);\n    box-shadow: 0 8px 20px rgba(212, 175, 55, 0.4);\n}<\/p>\n<p>.bifa-events-search-btn svg {\n    width: 18px;\n    height: 18px;\n    stroke: var(--bifa-deep-navy);\n    stroke-width: 2.5;\n}<\/p>\n<p>.bifa-events-filter-options {\n    display: flex;\n    gap: 15px;\n    flex-wrap: wrap;\n}<\/p>\n<p>.bifa-events-filter-btn {\n    padding: 12px 24px;\n    border: 2px solid rgba(212, 175, 55, 0.3);\n    background: white;\n    border-radius: 30px;\n    font-family: var(--bifa-font-heading);\n    font-weight: 600;\n    font-size: 0.9rem;\n    color: var(--bifa-deep-navy);\n    cursor: pointer;\n    transition: var(--bifa-transition);\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}<\/p>\n<p>.bifa-events-filter-btn.active,\n.bifa-events-filter-btn:hover {\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\n    border-color: var(--bifa-heritage-gold);\n    color: var(--bifa-deep-navy);\n    transform: translateY(-2px);\n    box-shadow: 0 8px 20px rgba(212, 175, 55, 0.3);\n}<\/p>\n<p>\/* =========  LOADING STATE  ========= *\/\n.bifa-events-loading-container {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    min-height: 500px;\n    gap: 30px;\n}<\/p>\n<p>.bifa-events-loader {\n    width: 100px;\n    height: 100px;\n    position: relative;\n}<\/p>\n<p>.bifa-events-loader-ring {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    border: 4px solid transparent;\n    border-radius: 50%;\n    animation: loaderSpinEvents 2s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;\n}<\/p>\n<p>.bifa-events-loader-ring:nth-child(1) {\n    border-top-color: var(--bifa-heritage-gold);\n    animation-delay: 0s;\n}<\/p>\n<p>.bifa-events-loader-ring:nth-child(2) {\n    width: 75%;\n    height: 75%;\n    top: 12.5%;\n    left: 12.5%;\n    border-right-color: var(--bifa-deep-navy);\n    animation-delay: 0.3s;\n    animation-direction: reverse;\n}<\/p>\n<p>.bifa-events-loader-ring:nth-child(3) {\n    width: 50%;\n    height: 50%;\n    top: 25%;\n    left: 25%;\n    border-bottom-color: var(--bifa-civic-green);\n    animation-delay: 0.6s;\n}<\/p>\n<p>@keyframes loaderSpinEvents {\n    0% { \n        transform: rotate(0deg) scale(1);\n    }\n    50% {\n        transform: rotate(180deg) scale(1.1);\n    }\n    100% { \n        transform: rotate(360deg) scale(1);\n    }\n}<\/p>\n<p>.events-loading-text {\n    font-family: var(--bifa-font-heading);\n    font-size: 1.4rem;\n    font-weight: 700;\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\n    -webkit-background-clip: text;\n    background-clip: text;\n    color: transparent;\n    animation: textGlowEvents 2.5s ease-in-out infinite;\n}<\/p>\n<p>\/* =========  EVENTS GRID  ========= *\/\n.bifa-events-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n    gap: 40px;\n    margin-bottom: 80px;\n}<\/p>\n<p>\/* =========  EVENT CARD PREMIUM  ========= *\/\n.bifa-event-card {\n    background: white;\n    backdrop-filter: blur(20px);\n    border-radius: 25px;\n    overflow: hidden;\n    box-shadow: 0 8px 30px rgba(10, 31, 68, 0.08);\n    transition: var(--bifa-transition);\n    cursor: pointer;\n    position: relative;\n    border: none;\n    opacity: 0;\n    animation: fadeInUpEvents 1.2s ease forwards;\n}<\/p>\n<p>.bifa-event-card:nth-child(1) { animation-delay: 0.1s; }\n.bifa-event-card:nth-child(2) { animation-delay: 0.2s; }\n.bifa-event-card:nth-child(3) { animation-delay: 0.3s; }\n.bifa-event-card:nth-child(4) { animation-delay: 0.4s; }\n.bifa-event-card:nth-child(5) { animation-delay: 0.5s; }\n.bifa-event-card:nth-child(6) { animation-delay: 0.6s; }<\/p>\n<p>.bifa-event-card::before {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 3px;\n    background: linear-gradient(90deg, transparent, var(--bifa-heritage-gold), transparent);\n    transform: scaleX(0);\n    transition: transform 0.4s ease;\n}<\/p>\n<p>.bifa-event-card:hover::before {\n    transform: scaleX(1);\n}<\/p>\n<p>.bifa-event-card:hover {\n    transform: translateY(-10px) scale(1.02);\n    box-shadow: 0 20px 50px rgba(10, 31, 68, 0.15);\n}<\/p>\n<p>.bifa-event-image {\n    position: relative;\n    height: 240px;\n    background-size: cover;\n    background-position: center;\n    overflow: hidden;\n}<\/p>\n<p>.bifa-event-image::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(180deg, \n        transparent 0%, \n        transparent 60%, \n        rgba(10, 31, 68, 0.8) 100%\n    );\n    transition: opacity 0.4s ease;\n}<\/p>\n<p>.bifa-event-card:hover .bifa-event-image::before {\n    opacity: 0.9;\n}<\/p>\n<p>\/* Shimmer effect *\/\n.bifa-event-image::after {\n    content: '';\n    position: absolute;\n    top: -50%;\n    left: -100%;\n    width: 50%;\n    height: 200%;\n    background: linear-gradient(90deg, \n        transparent 0%, \n        rgba(255, 255, 255, 0.4) 50%, \n        transparent 100%\n    );\n    transform: skewX(-25deg);\n    transition: left 1s ease;\n}<\/p>\n<p>.bifa-event-card:hover .bifa-event-image::after {\n    left: 150%;\n}<\/p>\n<p>\/* Event Status Badge *\/\n.bifa-event-status {\n    position: absolute;\n    top: 25px;\n    left: 25px;\n    padding: 10px 24px;\n    border-radius: 30px;\n    font-family: var(--bifa-font-heading);\n    font-weight: 800;\n    font-size: 0.8rem;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    z-index: 2;\n    backdrop-filter: blur(10px);\n    transition: all 0.3s ease;\n}<\/p>\n<p>.bifa-event-status.upcoming {\n    background: rgba(219, 234, 254, 0.9);\n    color: #1e40af;\n    border: 1px solid rgba(30, 64, 175, 0.2);\n    box-shadow: 0 10px 25px rgba(30, 64, 175, 0.2);\n}<\/p>\n<p>.bifa-event-status.ongoing {\n    background: rgba(220, 252, 231, 0.9);\n    color: #166534;\n    border: 1px solid rgba(22, 101, 52, 0.2);\n    box-shadow: 0 10px 25px rgba(22, 101, 52, 0.3);\n    animation: pulseGreenEvents 2s ease-in-out infinite;\n}<\/p>\n<p>@keyframes pulseGreenEvents {\n    0%, 100% { box-shadow: 0 10px 25px rgba(22, 101, 52, 0.3); }\n    50% { box-shadow: 0 15px 35px rgba(22, 101, 52, 0.5); }\n}<\/p>\n<p>.bifa-event-status.past {\n    background: rgba(243, 244, 246, 0.9);\n    color: #6b7280;\n    border: 1px solid rgba(107, 114, 128, 0.2);\n    box-shadow: 0 10px 25px rgba(107, 114, 128, 0.2);\n}<\/p>\n<p>.bifa-event-badge {\n    position: absolute;\n    top: 25px;\n    right: 25px;\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\n    color: var(--bifa-deep-navy);\n    padding: 10px 24px;\n    border-radius: 30px;\n    font-family: var(--bifa-font-heading);\n    font-weight: 800;\n    font-size: 0.8rem;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    z-index: 2;\n    box-shadow: 0 10px 25px rgba(212, 175, 55, 0.3);\n    transition: all 0.3s ease;\n}<\/p>\n<p>.bifa-event-card:hover .bifa-event-badge {\n    transform: translateY(-3px);\n    box-shadow: 0 15px 35px rgba(212, 175, 55, 0.4);\n}<\/p>\n<p>.bifa-event-content {\n    padding: 35px;\n}<\/p>\n<p>.bifa-event-dates {\n    margin-bottom: 20px;\n}<\/p>\n<p>.bifa-event-date {\n    font-family: var(--bifa-font-heading);\n    font-size: 1.1rem;\n    font-weight: 700;\n    color: var(--bifa-deep-navy);\n    display: flex;\n    align-items: center;\n    gap: 10px;\n}<\/p>\n<p>.bifa-event-date::before {\n    content: '';\n    width: 8px;\n    height: 8px;\n    background: var(--bifa-heritage-gold);\n    border-radius: 50%;\n}<\/p>\n<p>.bifa-event-date-range {\n    font-family: var(--bifa-font-body);\n    font-size: 0.9rem;\n    color: var(--bifa-gray);\n    margin-top: 5px;\n    padding-left: 18px;\n}<\/p>\n<p>.bifa-event-title {\n    font-family: var(--bifa-font-heading);\n    font-size: 1.35rem;\n    font-weight: 800;\n    color: var(--bifa-deep-navy);\n    line-height: 1.4;\n    margin-bottom: 18px;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    transition: color 0.3s ease;\n}<\/p>\n<p>.bifa-event-card:hover .bifa-event-title {\n    background: linear-gradient(135deg, var(--bifa-deep-navy), #162e5a);\n    -webkit-background-clip: text;\n    background-clip: text;\n    color: transparent;\n}<\/p>\n<p>.bifa-event-location {\n    font-family: var(--bifa-font-body);\n    font-size: 1rem;\n    color: #4a5568;\n    line-height: 1.5;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    margin-bottom: 30px;\n}<\/p>\n<p>.bifa-event-location svg {\n    width: 16px;\n    height: 16px;\n    stroke: var(--bifa-heritage-gold);\n    flex-shrink: 0;\n}<\/p>\n<p>.bifa-event-footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding-top: 25px;\n    border-top: 1px solid rgba(212, 175, 55, 0.2);\n}<\/p>\n<p>.bifa-event-link {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    color: var(--bifa-heritage-gold);\n    font-family: var(--bifa-font-heading);\n    font-weight: 700;\n    font-size: 0.95rem;\n    text-decoration: none;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    transition: var(--bifa-transition);\n    position: relative;\n}<\/p>\n<p>.bifa-event-link::after {\n    content: '';\n    position: absolute;\n    bottom: -3px;\n    left: 0;\n    width: 0;\n    height: 2px;\n    background: linear-gradient(90deg, var(--bifa-heritage-gold), #ffd700);\n    transition: width 0.3s ease;\n}<\/p>\n<p>.bifa-event-link:hover {\n    gap: 15px;\n}<\/p>\n<p>.bifa-event-link:hover::after {\n    width: calc(100% - 25px);\n}<\/p>\n<p>.bifa-event-link svg {\n    width: 18px;\n    height: 18px;\n    stroke: currentColor;\n    stroke-width: 2.5;\n    transition: transform 0.3s ease;\n}<\/p>\n<p>.bifa-event-link:hover svg {\n    transform: translateX(5px);\n}<\/p>\n<p>.bifa-event-stats {\n    display: flex;\n    gap: 20px;\n    font-size: 0.85rem;\n    color: var(--bifa-gray);\n}<\/p>\n<p>.bifa-event-stat {\n    display: flex;\n    align-items: center;\n    gap: 5px;\n}<\/p>\n<p>.bifa-event-stat svg {\n    width: 14px;\n    height: 14px;\n    stroke: currentColor;\n}<\/p>\n<p>\/* =========  PAGINATION  ========= *\/\n.bifa-events-pagination {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    gap: 15px;\n    margin-top: 60px;\n    opacity: 0;\n    animation: fadeInUpEvents 1.2s ease 1s forwards;\n}<\/p>\n<p>.bifa-events-pagination-btn {\n    width: 50px;\n    height: 50px;\n    border: 2px solid rgba(212, 175, 55, 0.3);\n    background: white;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    transition: var(--bifa-transition);\n    font-family: var(--bifa-font-heading);\n    font-weight: 700;\n    color: var(--bifa-deep-navy);\n    text-decoration: none;\n}<\/p>\n<p>.bifa-events-pagination-btn.active,\n.bifa-events-pagination-btn:hover {\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\n    border-color: var(--bifa-heritage-gold);\n    transform: scale(1.1);\n    box-shadow: 0 10px 25px rgba(212, 175, 55, 0.3);\n}<\/p>\n<p>.bifa-events-pagination-btn svg {\n    width: 20px;\n    height: 20px;\n    stroke: currentColor;\n    stroke-width: 2.5;\n}<\/p>\n<p>\/* =========  ERROR STATE  ========= *\/\n.bifa-events-error-container {\n    display: none;\n    text-align: center;\n    padding: 100px 20px;\n    animation: fadeInEvents 0.5s ease-out;\n}<\/p>\n<p>.bifa-events-error-icon {\n    width: 120px;\n    height: 120px;\n    margin: 0 auto 40px;\n    background: linear-gradient(135deg, #FF6B6B, #FF4757);\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    box-shadow: 0 25px 60px rgba(255, 71, 87, 0.3);\n    animation: errorPulseEvents 2s ease-in-out infinite;\n}<\/p>\n<p>@keyframes errorPulseEvents {\n    0%, 100% {\n        transform: scale(1);\n        box-shadow: 0 25px 60px rgba(255, 71, 87, 0.3);\n    }\n    50% {\n        transform: scale(1.05);\n        box-shadow: 0 30px 70px rgba(255, 71, 87, 0.4);\n    }\n}<\/p>\n<p>.bifa-events-error-icon svg {\n    width: 60px;\n    height: 60px;\n    stroke: white;\n    stroke-width: 3;\n}<\/p>\n<p>.bifa-events-error-title {\n    font-family: var(--bifa-font-heading);\n    font-size: 2.2rem;\n    font-weight: 800;\n    color: var(--bifa-deep-navy);\n    margin-bottom: 25px;\n}<\/p>\n<p>.bifa-events-error-message {\n    font-family: var(--bifa-font-body);\n    font-size: 1.2rem;\n    color: #4a5568;\n    margin-bottom: 50px;\n    max-width: 600px;\n    margin-left: auto;\n    margin-right: auto;\n    line-height: 1.7;\n}<\/p>\n<p>.bifa-events-retry-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 12px;\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\n    color: var(--bifa-deep-navy);\n    padding: 18px 40px;\n    border-radius: 50px;\n    font-family: var(--bifa-font-heading);\n    font-weight: 800;\n    font-size: 1rem;\n    text-decoration: none;\n    cursor: pointer;\n    border: none;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    transition: var(--bifa-transition);\n    box-shadow: 0 18px 45px rgba(212, 175, 55, 0.3);\n    position: relative;\n    overflow: hidden;\n}<\/p>\n<p>.bifa-events-retry-btn::before {\n    content: '';\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 0;\n    height: 0;\n    border-radius: 50%;\n    background: rgba(255, 255, 255, 0.3);\n    transform: translate(-50%, -50%);\n    transition: all 0.6s ease;\n}<\/p>\n<p>.bifa-events-retry-btn:hover {\n    transform: translateY(-3px);\n    box-shadow: 0 25px 60px rgba(212, 175, 55, 0.4);\n}<\/p>\n<p>.bifa-events-retry-btn:hover::before {\n    width: 300px;\n    height: 300px;\n}<\/p>\n<p>.bifa-events-retry-btn svg {\n    width: 22px;\n    height: 22px;\n    transition: transform 0.3s ease;\n}<\/p>\n<p>.bifa-events-retry-btn:hover svg {\n    transform: rotate(180deg);\n}<\/p>\n<p>\/* =========  ANIMATIONS  ========= *\/\n@keyframes fadeInEvents {\n    from { opacity: 0; }\n    to { opacity: 1; }\n}<\/p>\n<p>@keyframes fadeInDownEvents {\n    from {\n        opacity: 0;\n        transform: translateY(-50px);\n    }\n    to {\n        opacity: 1;\n        transform: translateY(0);\n    }\n}<\/p>\n<p>@keyframes fadeInUpEvents {\n    from {\n        opacity: 0;\n        transform: translateY(50px);\n    }\n    to {\n        opacity: 1;\n        transform: translateY(0);\n    }\n}<\/p>\n<p>@keyframes textGlowEvents {\n    0%, 100% {\n        text-shadow: 0 0 8px rgba(212, 175, 55, 0.5);\n    }\n    50% {\n        text-shadow: 0 0 25px rgba(212, 175, 55, 0.8), 0 0 35px rgba(212, 175, 55, 0.6);\n    }\n}<\/p>\n<p>\/* =========  RESPONSIVE - \u0411\u0415\u0417 \u041a\u041e\u041d\u0424\u041b\u0418\u041a\u0422\u0410 \u0421 \u0428\u0410\u041f\u041a\u041e\u0419  ========= *\/\n@media (max-width: 1200px) {\n    .bifa-events-grid {\n        grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n        gap: 35px;\n    }\n}<\/p>\n<p>@media (max-width: 992px) {\n    .bifa-events-filter-bar {\n        flex-direction: column;\n        align-items: stretch;\n        gap: 25px;\n    }<\/p>\n<p>    .bifa-events-search-container {\n        max-width: none;\n    }<\/p>\n<p>    .bifa-events-filter-options {\n        justify-content: center;\n    }<\/p>\n<p>    .bifa-events-main-content {\n        padding: 60px 0 40px 0;\n    }\n}<\/p>\n<p>@media (max-width: 768px) {\n    .bifa-events-main-content {\n        padding: 40px 0 30px 0;\n    }<\/p>\n<p>    .bifa-events-page-header {\n        margin-bottom: 50px;\n    }<\/p>\n<p>    .bifa-events-grid {\n        grid-template-columns: 1fr;\n        gap: 25px;\n    }<\/p>\n<p>    .bifa-event-content {\n        padding: 25px;\n    }<\/p>\n<p>    .bifa-events-pagination {\n        gap: 10px;\n    }<\/p>\n<p>    .bifa-events-pagination-btn {\n        width: 45px;\n        height: 45px;\n    }\n}<\/p>\n<p>@media (max-width: 480px) {\n    .bifa-events-main-content {\n        padding: 20px 0;\n    }<\/p>\n<p>    .bifa-events-page-title {\n        font-size: 2.5rem;\n    }<\/p>\n<p>    .bifa-events-page-subtitle {\n        font-size: 1.2rem;\n        letter-spacing: 1px;\n    }<\/p>\n<p>    .bifa-events-filter-options {\n        flex-direction: column;\n        align-items: center;\n    }<\/p>\n<p>    .bifa-events-filter-btn {\n        width: 100%;\n        max-width: 200px;\n        text-align: center;\n    }<\/p>\n<p>    .bifa-event-content {\n        padding: 20px;\n    }<\/p>\n<p>    .bifa-event-footer {\n        flex-direction: column;\n        gap: 15px;\n        align-items: flex-start;\n    }<\/p>\n<p>    .bifa-event-stats {\n        width: 100%;\n        justify-content: space-between;\n    }\n}\n<\/style>\n<p><\/head><br \/>\n<body><\/p>\n<div class=\"bifa-events-page-wrapper\">\n    <!-- Animated Background --><\/p>\n<div class=\"events-page-bg-animation\">\n        <!-- Floating shapes --><\/p>\n<div class=\"events-floating-shape events-shape-page-1\"><\/div>\n<div class=\"events-floating-shape events-shape-page-2\"><\/div>\n<div class=\"events-floating-shape events-shape-page-3\"><\/div>\n<p>        <!-- Golden particles will be added by JavaScript -->\n    <\/div>\n<p>    <!-- Main Content --><br \/>\n    <main class=\"bifa-events-main-content\"><\/p>\n<div class=\"bifa-events-container\">\n            <!-- Page Header --><\/p>\n<div class=\"bifa-events-page-header\">\n<h1 class=\"bifa-events-page-title\">\u0907\u0935\u0947\u0902\u091f \u0938\u0947\u0902\u091f\u0930<\/h1>\n<p class=\"bifa-events-page-subtitle\">\u091f\u0942\u0930\u094d\u0928\u093e\u092e\u0947\u0902\u091f \u0914\u0930 \u0938\u092e\u094d\u092e\u0947\u0932\u0928<\/p>\n<p class=\"bifa-events-page-description\">\n                    BIFA+ \u0915\u0947 \u0905\u0902\u0924\u0930\u094d\u0930\u093e\u0937\u094d\u091f\u094d\u0930\u0940\u092f \u0906\u092f\u094b\u091c\u0928\u094b\u0902, \u091f\u0942\u0930\u094d\u0928\u093e\u092e\u0947\u0902\u091f\u094b\u0902 \u0914\u0930 \u0938\u092e\u094d\u092e\u0947\u0932\u0928\u094b\u0902 \u092e\u0947\u0902 \u0936\u093e\u092e\u093f\u0932 \u0939\u094b\u0902\u0964 \u0907\u0938 \u0916\u0947\u0932 \u0915\u0947 \u092d\u0935\u093f\u0937\u094d\u092f \u0915\u094b \u0906\u0915\u093e\u0930 \u0926\u0947\u0928\u0947 \u0935\u093e\u0932\u0947 \u0935\u0948\u0936\u094d\u0935\u093f\u0915 \u092b\u093c\u0941\u091f\u092c\u0949\u0932 \u0938\u092e\u0941\u0926\u093e\u092f \u0915\u093e \u0939\u093f\u0938\u094d\u0938\u093e \u092c\u0928\u0947\u0902\u0964\n                <\/p>\n<\/p><\/div>\n<p>            <!-- Search & Filter Bar --><\/p>\n<div class=\"bifa-events-filter-bar\">\n<div class=\"bifa-events-search-container\">\n                    <input type=\"text\" class=\"bifa-events-search-input\" placeholder=\"\u0907\u0935\u0947\u0902\u091f \u0916\u094b\u091c\u0947\u0902...\" id=\"bifaEventsSearchInput\"><br \/>\n                    <button class=\"bifa-events-search-btn\" id=\"bifaEventsSearchBtn\"><br \/>\n                        <svg viewbox=\"0 0 24 24\" fill=\"none\">\n                            <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                            <path d=\"m21 21-4.35-4.35\"><\/path>\n                        <\/svg><br \/>\n                    <\/button>\n                <\/div>\n<div class=\"bifa-events-filter-options\">\n                    <button class=\"bifa-events-filter-btn active\" data-filter=\"all\">\u0938\u092d\u0940 \u0915\u093e\u0930\u094d\u092f\u0915\u094d\u0930\u092e<\/button><br \/>\n                    <button class=\"bifa-events-filter-btn\" data-filter=\"upcoming\">\u0906\u0917\u093e\u092e\u0940<\/button><br \/>\n                    <button class=\"bifa-events-filter-btn\" data-filter=\"ongoing\">\u0905\u092c \u0938\u0940\u0927\u093e \u092a\u094d\u0930\u0938\u093e\u0930\u0923 \u0939\u094b \u0930\u0939\u093e \u0939\u0948<\/button><br \/>\n                    <button class=\"bifa-events-filter-btn\" data-filter=\"past\">\u0905\u0924\u0940\u0924 \u0915\u0940 \u0918\u091f\u0928\u093e\u092f\u0947\u0902<\/button>\n                <\/div>\n<\/p><\/div>\n<p>            <!-- Loading State --><\/p>\n<div id=\"bifaEventsLoadingState\" class=\"bifa-events-loading-container\">\n<div class=\"bifa-events-loader\">\n<div class=\"bifa-events-loader-ring\"><\/div>\n<div class=\"bifa-events-loader-ring\"><\/div>\n<div class=\"bifa-events-loader-ring\"><\/div>\n<\/p><\/div>\n<p class=\"events-loading-text\">\u0907\u0935\u0947\u0902\u091f \u0932\u094b\u0921 \u0939\u094b \u0930\u0939\u0947 \u0939\u0948\u0902\u2026<\/p>\n<\/p><\/div>\n<p>            <!-- Events Grid --><\/p>\n<div id=\"bifaEventsGrid\" class=\"bifa-events-grid\" style=\"display: none;\">\n                <!-- Event cards will be dynamically loaded -->\n            <\/div>\n<p>            <!-- Pagination --><\/p>\n<div id=\"bifaEventsPagination\" class=\"bifa-events-pagination\" style=\"display: none;\">\n                <!-- Pagination will be dynamically loaded -->\n            <\/div>\n<p>            <!-- Error State --><\/p>\n<div id=\"bifaEventsErrorState\" class=\"bifa-events-error-container\">\n<div class=\"bifa-events-error-icon\">\n                    <svg viewbox=\"0 0 24 24\" fill=\"none\">\n                        <path d=\"M12 9V13M12 17H12.01M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/svg>\n                <\/div>\n<h3 class=\"bifa-events-error-title\">\u0908\u0935\u0947\u0902\u091f \u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0905\u0938\u092e\u0930\u094d\u0925<\/h3>\n<p class=\"bifa-events-error-message\">\u0939\u092e\u0947\u0902 \u0907\u0935\u0947\u0902\u091f \u092a\u094d\u0930\u093e\u092a\u094d\u0924 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0938\u092e\u0938\u094d\u092f\u093e \u0906 \u0930\u0939\u0940 \u0939\u0948\u0964 \u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u093e \u0915\u0928\u0947\u0915\u094d\u0936\u0928 \u091c\u093e\u0902\u091a\u0947\u0902 \u0914\u0930 \u092a\u0941\u0928\u0903 \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902\u0964<\/p>\n<p>                <button class=\"bifa-events-retry-btn\" onclick=\"BifaEventsPage.loadEvents()\"><br \/>\n                    <svg viewbox=\"0 0 24 24\" fill=\"none\">\n                        <path d=\"M1 4V10H7M23 20V14H17M20.49 9C19.62 5.33 16.31 2.5 12.23 2.5C7.09 2.5 2.7 7.17 3.04 12.5C3.38 17.83 8.09 22 13.5 22C17.83 22 21.53 19.19 22.68 15.36M12 8V12L15 15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/svg><br \/>\n                    <span>\u092a\u0941\u0928: \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902<\/span><br \/>\n                <\/button>\n            <\/div>\n<\/p><\/div>\n<p>    <\/main>\n<\/div>\n<p><script>\n\/\/ BIFA+ Premium Events Page Module\nconst BifaEventsPage = {\n    \/\/ Configuration\n    config: {\n        apiUrl: 'https:\/\/bifa.ai\/wp-json\/wp\/v2\/bifa_news_events',\n        perPage: 12,\n        currentPage: 1,\n        totalPages: 1,\n        eventsParams: '_embed&per_page=50&orderby=date&order=desc&meta_query[relation]=AND&meta_query[0][key]=_bifa_event_date&meta_query[0][compare]=EXISTS&meta_query[1][key]=_bifa_event_date&meta_query[1][value]=&meta_query[1][compare]=!=',\n        allEvents: [],\n        filteredEvents: [],\n        currentFilter: 'all',\n        searchQuery: ''\n    },<\/p>\n<p>    \/\/ Initialize\n    init() {\n        this.createParticles();\n        this.setupEventListeners();\n        this.loadEvents();\n    },<\/p>\n<p>    \/\/ Create golden particles\n    createParticles() {\n        const particlesContainer = document.querySelector('.events-page-bg-animation');\n        const particleCount = 15;<\/p>\n<p>        for (let i = 0; i < particleCount; i++) {\n            const particle = document.createElement('div');\n            particle.className = 'events-page-particle';\n            particle.style.left = Math.random() * 100 + '%';\n            particle.style.animationDelay = Math.random() * 20 + 's';\n            particle.style.animationDuration = (20 + Math.random() * 10) + 's';\n            \n            const size = 3 + Math.random() * 3;\n            particle.style.width = size + 'px';\n            particle.style.height = size + 'px';\n            \n            particlesContainer.appendChild(particle);\n        }\n    },\n\n    \/\/ Setup event listeners\n    setupEventListeners() {\n        \/\/ Search functionality\n        const searchInput = document.getElementById('bifaEventsSearchInput');\n        const searchBtn = document.getElementById('bifaEventsSearchBtn');\n        \n        if (searchInput) {\n            searchInput.addEventListener('input', (e) => {\n                this.config.searchQuery = e.target.value.toLowerCase();\n                this.filterAndDisplayEvents();\n            });\n        }<\/p>\n<p>        if (searchBtn) {\n            searchBtn.addEventListener('click', () => {\n                this.filterAndDisplayEvents();\n            });\n        }<\/p>\n<p>        \/\/ Filter buttons\n        const filterBtns = document.querySelectorAll('.bifa-events-filter-btn');\n        filterBtns.forEach(btn => {\n            btn.addEventListener('click', (e) => {\n                \/\/ Remove active class from all buttons\n                filterBtns.forEach(b => b.classList.remove('active'));\n                \/\/ Add active class to clicked button\n                e.target.classList.add('active');<\/p>\n<p>                this.config.currentFilter = e.target.dataset.filter;\n                this.config.currentPage = 1;\n                this.filterAndDisplayEvents();\n            });\n        });\n    },<\/p>\n<p>    \/\/ Load events from API\n    async loadEvents() {\n        const loadingState = document.getElementById('bifaEventsLoadingState');\n        const eventsGrid = document.getElementById('bifaEventsGrid');\n        const pagination = document.getElementById('bifaEventsPagination');\n        const errorState = document.getElementById('bifaEventsErrorState');<\/p>\n<p>        try {\n            \/\/ Show loading\n            loadingState.style.display = 'flex';\n            eventsGrid.style.display = 'none';\n            pagination.style.display = 'none';\n            errorState.style.display = 'none';<\/p>\n<p>            \/\/ Fetch all events\n            const response = await fetch(`${this.config.apiUrl}?${this.config.eventsParams}`);<\/p>\n<p>            if (!response.ok) {\n                throw new Error('Failed to fetch events');\n            }<\/p>\n<p>            const allData = await response.json();<\/p>\n<p>            \/\/ Filter only events (with event dates)\n            const eventsData = allData.filter(item => {\n                const eventDate = item._bifa_event_date || item.meta?._bifa_event_date;\n                return eventDate && eventDate !== '';\n            });<\/p>\n<p>            if (eventsData.length === 0) {\n                throw new Error('No events available');\n            }<\/p>\n<p>            \/\/ Store all events\n            this.config.allEvents = eventsData;\n            this.config.filteredEvents = eventsData;<\/p>\n<p>            \/\/ Hide loading, show content\n            loadingState.style.display = 'none';\n            eventsGrid.style.display = 'grid';<\/p>\n<p>            \/\/ Display events\n            this.filterAndDisplayEvents();<\/p>\n<p>        } catch (error) {\n            console.error('Error loading events:', error);\n            loadingState.style.display = 'none';\n            errorState.style.display = 'block';\n        }\n    },<\/p>\n<p>    \/\/ Get event status\n    getEventStatus(startDate, endDate) {\n        if (!startDate) return 'unknown';<\/p>\n<p>        const now = new Date();\n        const start = new Date(startDate);\n        const end = endDate ? new Date(endDate) : start;<\/p>\n<p>        now.setHours(0, 0, 0, 0);\n        start.setHours(0, 0, 0, 0);\n        end.setHours(23, 59, 59, 999);<\/p>\n<p>        if (now > end) {\n            return 'past';\n        } else if (now >= start && now <= end) {\n            return 'ongoing';\n        } else {\n            return 'upcoming';\n        }\n    },\n\n    \/\/ Get status text\n    getStatusText(status) {\n        switch(status) {\n            case 'upcoming': return 'Upcoming';\n            case 'ongoing': return 'Live Now';\n            case 'past': return 'Past Event';\n            default: return '';\n        }\n    },\n\n    \/\/ Format date\n    formatDate(dateStr) {\n        if (!dateStr) return '';\n        const date = new Date(dateStr);\n        return date.toLocaleDateString('en-US', {\n            month: 'long',\n            day: 'numeric',\n            year: 'numeric'\n        });\n    },\n\n    \/\/ Filter and display events\n    filterAndDisplayEvents() {\n        let filtered = this.config.allEvents;\n\n        \/\/ Apply status filter\n        if (this.config.currentFilter !== 'all') {\n            filtered = filtered.filter(event => {\n                const eventDate = event._bifa_event_date;\n                const eventEndDate = event._bifa_event_end_date;\n                const status = this.getEventStatus(eventDate, eventEndDate);\n                return status === this.config.currentFilter;\n            });\n        }<\/p>\n<p>        \/\/ Apply search filter\n        if (this.config.searchQuery) {\n            filtered = filtered.filter(event => {\n                const title = event.title.rendered.toLowerCase();\n                const location = (event._bifa_location || '').toLowerCase();\n                return title.includes(this.config.searchQuery) || \n                       location.includes(this.config.searchQuery);\n            });\n        }<\/p>\n<p>        this.config.filteredEvents = filtered;\n        this.config.totalPages = Math.ceil(filtered.length \/ this.config.perPage);<\/p>\n<p>        this.renderEvents();\n        this.renderPagination();\n    },<\/p>\n<p>    \/\/ Render events grid\n    renderEvents() {\n        const eventsGrid = document.getElementById('bifaEventsGrid');\n        if (!eventsGrid) return;<\/p>\n<p>        \/\/ Calculate start and end indices for current page\n        const startIndex = (this.config.currentPage - 1) * this.config.perPage;\n        const endIndex = startIndex + this.config.perPage;\n        const pageEvents = this.config.filteredEvents.slice(startIndex, endIndex);<\/p>\n<p>        \/\/ Clear existing content\n        eventsGrid.innerHTML = '';<\/p>\n<p>        if (pageEvents.length === 0) {\n            eventsGrid.innerHTML = `<\/p>\n<div style=\"grid-column: 1 \/ -1; text-align: center; padding: 80px 20px;\">\n<h3 style=\"font-family: var(--bifa-font-heading); font-size: 1.5rem; color: var(--bifa-deep-navy); margin-bottom: 10px;\">No events found<\/h3>\n<p style=\"color: var(--bifa-gray);\">Try adjusting your search or filter criteria.<\/p>\n<\/p><\/div>\n<p>            `;\n            return;\n        }<\/p>\n<p>        \/\/ Render each event\n        pageEvents.forEach((event, index) => {\n            const card = this.createEventCard(event, index);\n            eventsGrid.appendChild(card);\n        });<\/p>\n<p>        \/\/ Scroll to top of grid\n        eventsGrid.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    },<\/p>\n<p>    \/\/ Create event card\n    createEventCard(event, index) {\n        const card = document.createElement('div');\n        card.className = 'bifa-event-card';\n        card.style.animationDelay = `${index * 0.1}s`;<\/p>\n<p>        \/\/ Get data\n        const media = event._embedded?.['wp:featuredmedia']?.[0];\n        const imageUrl = media?.source_url || `\/wp-content\/themes\/yootheme-child\/assets\/images\/event-placeholder-${(index % 3) + 1}.jpg`;\n        const eventDate = event._bifa_event_date;\n        const eventEndDate = event._bifa_event_end_date;\n        const location = event._bifa_location || 'Location TBA';\n        const badge = this.getBadgeText(event);\n        const status = this.getEventStatus(eventDate, eventEndDate);\n        const statusText = this.getStatusText(status);<\/p>\n<p>        \/\/ Format dates\n        let dateDisplay = '';\n        if (eventEndDate && eventDate !== eventEndDate) {\n            dateDisplay = `<\/p>\n<div class=\"bifa-event-date\">${this.formatDate(eventDate)}<\/div>\n<div class=\"bifa-event-date-range\">to ${this.formatDate(eventEndDate)}<\/div>\n<p>            `;\n        } else {\n            dateDisplay = `<\/p>\n<div class=\"bifa-event-date\">${this.formatDate(eventDate)}<\/div>\n<p>`;\n        }<\/p>\n<p>        card.innerHTML = `<\/p>\n<div class=\"bifa-event-image\" style=\"background-image: url('${imageUrl}')\">\n                ${status !== 'unknown' ? `<span class=\"bifa-event-status ${status}\">${statusText}<\/span>` : ''}\n                ${badge ? `<span class=\"bifa-event-badge\">${badge}<\/span>` : ''}\n            <\/div>\n<div class=\"bifa-event-content\">\n<div class=\"bifa-event-dates\">\n                    ${dateDisplay}\n                <\/div>\n<h3 class=\"bifa-event-title\">${event.title.rendered}<\/h3>\n<div class=\"bifa-event-location\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\">\n                        <path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\" stroke=\"currentColor\" stroke-width=\"2\"\/>\n                        <circle cx=\"12\" cy=\"10\" r=\"3\" stroke=\"currentColor\" stroke-width=\"2\"\/>\n                    <\/svg>\n                    <span>${location}<\/span>\n                <\/div>\n<div class=\"bifa-event-footer\">\n                    <a href=\"\/$%7Bevent.link%7D\" class=\"bifa-event-link\" target=\"_blank\" onclick=\"event.stopPropagation()\">\n                        <span>Learn More<\/span>\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\">\n                            <path d=\"M5 12H19M19 12L12 5M19 12L12 19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <\/svg>\n                    <\/a><\/p>\n<div class=\"bifa-event-stats\">\n<div class=\"bifa-event-stat\">\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\">\n                                <path d=\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                            <\/svg>\n                            <span>${status === 'ongoing' ? 'Live' : status === 'upcoming' ? 'Soon' : 'Ended'}<\/span>\n                        <\/div>\n<div class=\"bifa-event-stat\">\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\">\n                                <path d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                            <\/svg>\n                            <span>Official<\/span>\n                        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p>        `;<\/p>\n<p>        \/\/ Add click handler\n        card.addEventListener('click', () => {\n            window.open(event.link, '_blank');\n        });<\/p>\n<p>        return card;\n    },<\/p>\n<p>    \/\/ Render pagination\n    renderPagination() {\n        const pagination = document.getElementById('bifaEventsPagination');\n        if (!pagination || this.config.totalPages <= 1) {\n            pagination.style.display = 'none';\n            return;\n        }\n\n        pagination.style.display = 'flex';\n        pagination.innerHTML = '';\n\n        \/\/ Previous button\n        if (this.config.currentPage > 1) {\n            const prevBtn = document.createElement('a');\n            prevBtn.className = 'bifa-events-pagination-btn';\n            prevBtn.href = '#';\n            prevBtn.innerHTML = `\n                <svg viewBox=\"0 0 24 24\" fill=\"none\">\n                    <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n            `;\n            prevBtn.addEventListener('click', (e) => {\n                e.preventDefault();\n                this.config.currentPage--;\n                this.renderEvents();\n                this.renderPagination();\n            });\n            pagination.appendChild(prevBtn);\n        }<\/p>\n<p>        \/\/ Page numbers\n        const startPage = Math.max(1, this.config.currentPage - 2);\n        const endPage = Math.min(this.config.totalPages, this.config.currentPage + 2);<\/p>\n<p>        for (let i = startPage; i <= endPage; i++) {\n            const pageBtn = document.createElement('a');\n            pageBtn.className = `bifa-events-pagination-btn ${i === this.config.currentPage ? 'active' : ''}`;\n            pageBtn.href = '#';\n            pageBtn.textContent = i;\n            pageBtn.addEventListener('click', (e) => {\n                e.preventDefault();\n                this.config.currentPage = i;\n                this.renderEvents();\n                this.renderPagination();\n            });\n            pagination.appendChild(pageBtn);\n        }<\/p>\n<p>        \/\/ Next button\n        if (this.config.currentPage < this.config.totalPages) {\n            const nextBtn = document.createElement('a');\n            nextBtn.className = 'bifa-events-pagination-btn';\n            nextBtn.href = '#';\n            nextBtn.innerHTML = `\n                <svg viewBox=\"0 0 24 24\" fill=\"none\">\n                    <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n            `;\n            nextBtn.addEventListener('click', (e) => {\n                e.preventDefault();\n                this.config.currentPage++;\n                this.renderEvents();\n                this.renderPagination();\n            });\n            pagination.appendChild(nextBtn);\n        }\n    },<\/p>\n<p>    \/\/ Get badge text\n    getBadgeText(event) {\n        if (event._bifa_badge_text) {\n            return event._bifa_badge_text;\n        }<\/p>\n<p>        const category = event._embedded?.['wp:term']?.[0]?.[0];\n        return category?.name || '';\n    },<\/p>\n<p>    \/\/ Strip HTML\n    stripHtml(html) {\n        const temp = document.createElement('div');\n        temp.innerHTML = html;\n        return temp.textContent || temp.innerText || '';\n    }\n};<\/p>\n<p>\/\/ Initialize when DOM is ready\ndocument.addEventListener('DOMContentLoaded', () => {\n    BifaEventsPage.init();\n});\n<\/script><\/p>\n<p><\/body><br \/>\n<\/html>\n<\/div>\n<p><!--more--><br \/>\n<!-- {\"type\":\"layout\",\"children\":[{\"type\":\"section\",\"props\":{\"image_position\":\"center-center\",\"padding_remove_top\":true,\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"html\",\"props\":{\"content\":\"<!DOCTYPE html>\\n<html lang=\\\"ru\\\">\\n<head>\\n<meta charset=\\\"UTF-8\\\">\\n<meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\">\\n<title>BIFA+ Events - Upcoming Tournaments & Conferences<\\\/title>\\n<link rel=\\\"preconnect\\\" href=\\\"https:\\\/\\\/fonts.googleapis.com\\\">\\n<link rel=\\\"preconnect\\\" href=\\\"https:\\\/\\\/fonts.gstatic.com\\\" crossorigin>\\n<!-- \\u041e\\u0444\\u0438\\u0446\\u0438\\u0430\\u043b\\u044c\\u043d\\u044b\\u0435 \\u0448\\u0440\\u0438\\u0444\\u0442\\u044b BIFA+ \\u0441\\u043e\\u0433\\u043b\\u0430\\u0441\\u043d\\u043e \\u0431\\u0440\\u0435\\u043d\\u0434\\u0431\\u0443\\u043a\\u0443 -->\\n<link href=\"\\\"https:\\\/\\\/fonts.googleapis.com\\\/css2?family=Montserrat:wght@300;400;500;600;700;800;900&#038;family=Poppins:wght@300;400;500;600;700;800&#038;family=Cairo:wght@300;400;500;600;700;800&#038;family=Tajawal:wght@300;400;500;700;800&#038;display=swap\\\"\" rel=\"\\\"stylesheet\\\"\">\\n\\n<\/p>\n<style>\\n\\\/* =========  \\u041f\\u0415\\u0420\\u0415\\u041c\\u0415\\u041d\\u041d\\u042b\\u0415 - \\u0421\\u041e\\u0412\\u041c\\u0415\\u0421\\u0422\\u0418\\u041c\\u041e\\u0421\\u0422\\u042c \\u0421 \\u0428\\u0410\\u041f\\u041a\\u041e\\u0419  ========= *\\\/\\n.bifa-events-page-wrapper {\\n    \\\/* \\u041e\\u0444\\u0438\\u0446\\u0438\\u0430\\u043b\\u044c\\u043d\\u044b\\u0435 \\u0446\\u0432\\u0435\\u0442\\u0430 BIFA+ *\\\/\\n    --bifa-deep-navy: #0A1F44;\\n    --bifa-heritage-gold: #D4AF37;\\n    --bifa-civic-green: #1D6143;\\n    --bifa-bright-white: #FFFFFF;\\n    --bifa-soft-black: #1A1A1A;\\n    --bifa-gray-light: #F8F9FA;\\n    --bifa-gray: #6C757D;\\n    \\n    \\\/* \\u041e\\u0444\\u0438\\u0446\\u0438\\u0430\\u043b\\u044c\\u043d\\u044b\\u0435 \\u0448\\u0440\\u0438\\u0444\\u0442\\u044b BIFA+ *\\\/\\n    --bifa-font-heading: 'Montserrat', 'Cairo', sans-serif;\\n    --bifa-font-body: 'Poppins', 'Tajawal', sans-serif;\\n    --bifa-font-arabic: 'Cairo', 'Tajawal', 'GE SS Text', sans-serif;\\n    \\n    \\\/* \\u041f\\u0440\\u0435\\u043c\\u0438\\u0430\\u043b\\u044c\\u043d\\u044b\\u0435 \\u0442\\u0435\\u043d\\u0438 \\u0438 \\u044d\\u0444\\u0444\\u0435\\u043a\\u0442\\u044b *\\\/\\n    --bifa-shadow-premium: 0 25px 80px rgba(10, 31, 68, 0.15);\\n    --bifa-shadow-hover: 0 35px 100px rgba(10, 31, 68, 0.2);\\n    --bifa-shadow-gold: 0 15px 40px rgba(212, 175, 55, 0.3);\\n    --bifa-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n\\n\\\/* =========  RESET - \\u041d\\u0415 \\u0412\\u041b\\u0418\\u042f\\u0415\\u041c \\u041d\\u0410 \\u0428\\u0410\\u041f\\u041a\\u0423  ========= *\\\/\\n.bifa-events-page-wrapper * {\\n    box-sizing: border-box;\\n}\\n\\n\\\/* \\u0421\\u0431\\u0440\\u043e\\u0441 \\u0442\\u043e\\u043b\\u044c\\u043a\\u043e \\u0434\\u043b\\u044f \\u043d\\u0430\\u0448\\u0435\\u0433\\u043e \\u043a\\u043e\\u043d\\u0442\\u0435\\u043d\\u0442\\u0430, \\u043d\\u0435 \\u0442\\u0440\\u043e\\u0433\\u0430\\u0435\\u043c \\u0448\\u0430\\u043f\\u043a\\u0443 *\\\/\\n.bifa-events-page-wrapper .bifa-events-main-content * {\\n    box-sizing: border-box;\\n}\\n\\n\\\/* =========  MAIN PAGE WRAPPER - \\u0411\\u0415\\u0417 \\u041a\\u041e\\u041d\\u0424\\u041b\\u0418\\u041a\\u0422\\u0410 \\u0421 \\u0428\\u0410\\u041f\\u041a\\u041e\\u0419  ========= *\\\/\\n.bifa-events-page-wrapper {\\n    min-height: 100vh;\\n    position: relative;\\n    background: linear-gradient(180deg, \\n        rgba(248, 249, 250, 0.8) 0%, \\n        rgba(255, 255, 255, 1) 100%\\n    );\\n    width: 100vw;\\n    margin-left: calc(-50vw + 50%);\\n    padding: 0;\\n}\\n\\n\\\/* =========  ANIMATED BACKGROUND  ========= *\\\/\\n.events-page-bg-animation {\\n    position: fixed;\\n    width: 100%;\\n    height: 100%;\\n    overflow: hidden;\\n    z-index: 1;\\n    top: 0;\\n    left: 0;\\n    pointer-events: none;\\n}\\n\\n\\\/* \\u0417\\u043e\\u043b\\u043e\\u0442\\u044b\\u0435 \\u0447\\u0430\\u0441\\u0442\\u0438\\u0446\\u044b *\\\/\\n.events-page-particle {\\n    position: absolute;\\n    width: 3px;\\n    height: 3px;\\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\\n    border-radius: 50%;\\n    animation: floatEventsPage 25s infinite linear;\\n    box-shadow: 0 0 6px rgba(212, 175, 55, 0.2);\\n    opacity: 0.15;\\n    will-change: transform;\\n}\\n\\n@keyframes floatEventsPage {\\n    0% {\\n        transform: translateY(100vh) translateX(0) rotate(0deg);\\n        opacity: 0;\\n    }\\n    10% { opacity: 0.2; }\\n    90% { opacity: 0.2; }\\n    100% {\\n        transform: translateY(-100vh) translateX(100px) rotate(360deg);\\n        opacity: 0;\\n    }\\n}\\n\\n\\\/* \\u041f\\u043b\\u0430\\u0432\\u0430\\u044e\\u0449\\u0438\\u0435 \\u0433\\u0435\\u043e\\u043c\\u0435\\u0442\\u0440\\u0438\\u0447\\u0435\\u0441\\u043a\\u0438\\u0435 \\u0444\\u0438\\u0433\\u0443\\u0440\\u044b *\\\/\\n.events-floating-shape {\\n    position: absolute;\\n    border-radius: 50%;\\n    filter: blur(150px);\\n    animation: morphFloatEvents 30s ease-in-out infinite;\\n    pointer-events: none;\\n    opacity: 0.4;\\n}\\n\\n.events-shape-page-1 {\\n    width: 500px;\\n    height: 500px;\\n    background: radial-gradient(circle at 30% 30%, rgba(212, 175, 55, 0.06), transparent);\\n    top: -250px;\\n    right: -250px;\\n}\\n\\n.events-shape-page-2 {\\n    width: 400px;\\n    height: 400px;\\n    background: radial-gradient(circle at 70% 70%, rgba(10, 31, 68, 0.04), transparent);\\n    bottom: -200px;\\n    left: -200px;\\n    animation-delay: 10s;\\n}\\n\\n.events-shape-page-3 {\\n    width: 350px;\\n    height: 350px;\\n    background: radial-gradient(circle at 50% 50%, rgba(29, 97, 67, 0.05), transparent);\\n    top: 30%;\\n    left: 70%;\\n    animation-delay: 20s;\\n}\\n\\n@keyframes morphFloatEvents {\\n    0%, 100% { \\n        transform: translate(0, 0) scale(1) rotate(0deg);\\n        filter: blur(150px);\\n    }\\n    25% { \\n        transform: translate(150px, -100px) scale(1.3) rotate(90deg);\\n        filter: blur(180px);\\n    }\\n    50% { \\n        transform: translate(-100px, 150px) scale(0.7) rotate(180deg);\\n        filter: blur(120px);\\n    }\\n    75% { \\n        transform: translate(-150px, -80px) scale(1.2) rotate(270deg);\\n        filter: blur(160px);\\n    }\\n}\\n\\n\\\/* =========  MAIN CONTENT - \\u0410\\u0414\\u0410\\u041f\\u0422\\u0410\\u0426\\u0418\\u042f \\u041f\\u041e\\u0414 \\u0421\\u0423\\u0429\\u0415\\u0421\\u0422\\u0412\\u0423\\u042e\\u0429\\u0423\\u042e \\u0428\\u0410\\u041f\\u041a\\u0423  ========= *\\\/\\n.bifa-events-main-content {\\n    position: relative;\\n    z-index: 10;\\n    padding: 80px 0 60px 0;\\n    width: 100%;\\n}\\n\\n.bifa-events-container {\\n    max-width: 1400px;\\n    margin: 0 auto;\\n    padding: 0 20px;\\n    width: 100%;\\n}\\n\\n\\\/* =========  PAGE HEADER  ========= *\\\/\\n.bifa-events-page-header {\\n    text-align: center;\\n    margin-bottom: 80px;\\n    animation: fadeInDownEvents 1.2s ease;\\n}\\n\\n.bifa-events-page-title {\\n    font-family: var(--bifa-font-heading);\\n    font-size: clamp(3rem, 5vw, 4.5rem);\\n    font-weight: 900;\\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\\n    -webkit-background-clip: text;\\n    background-clip: text;\\n    color: transparent;\\n    margin-bottom: 20px;\\n    text-transform: uppercase;\\n    position: relative;\\n    display: inline-block;\\n    cursor: pointer;\\n    transition: all 0.3s ease;\\n}\\n\\n.bifa-events-page-title::after {\\n    content: '';\\n    position: absolute;\\n    bottom: -15px;\\n    left: 50%;\\n    transform: translateX(-50%);\\n    width: 0;\\n    height: 4px;\\n    background: linear-gradient(90deg, var(--bifa-heritage-gold), #ffd700);\\n    transition: width 0.4s ease;\\n}\\n\\n.bifa-events-page-title:hover {\\n    transform: translateY(-5px);\\n    filter: drop-shadow(0 15px 30px rgba(212, 175, 55, 0.3));\\n}\\n\\n.bifa-events-page-title:hover::after {\\n    width: 100%;\\n}\\n\\n.bifa-events-page-subtitle {\\n    font-family: var(--bifa-font-heading);\\n    font-size: clamp(1.2rem, 2.5vw, 1.8rem);\\n    color: var(--bifa-deep-navy);\\n    font-weight: 600;\\n    letter-spacing: 2px;\\n    margin-bottom: 20px;\\n    opacity: 0;\\n    animation: fadeInUpEvents 1.2s ease 0.3s forwards;\\n}\\n\\n.bifa-events-page-description {\\n    max-width: 900px;\\n    margin: 0 auto;\\n    font-family: var(--bifa-font-body);\\n    font-size: clamp(1rem, 1.5vw, 1.2rem);\\n    line-height: 1.8;\\n    color: #4a5568;\\n    opacity: 0;\\n    animation: fadeInUpEvents 1.2s ease 0.6s forwards;\\n}\\n\\n\\\/* =========  SEARCH & FILTER BAR  ========= *\\\/\\n.bifa-events-filter-bar {\\n    display: flex;\\n    justify-content: space-between;\\n    align-items: center;\\n    margin-bottom: 60px;\\n    gap: 30px;\\n    flex-wrap: wrap;\\n    opacity: 0;\\n    animation: fadeInUpEvents 1.2s ease 0.8s forwards;\\n}\\n\\n.bifa-events-search-container {\\n    position: relative;\\n    flex: 1;\\n    max-width: 400px;\\n}\\n\\n.bifa-events-search-input {\\n    width: 100%;\\n    padding: 18px 55px 18px 25px;\\n    border: 2px solid rgba(212, 175, 55, 0.2);\\n    border-radius: 50px;\\n    font-family: var(--bifa-font-body);\\n    font-size: 1rem;\\n    background: white;\\n    backdrop-filter: blur(10px);\\n    transition: var(--bifa-transition);\\n    outline: none;\\n}\\n\\n.bifa-events-search-input:focus {\\n    border-color: var(--bifa-heritage-gold);\\n    box-shadow: 0 10px 30px rgba(212, 175, 55, 0.2);\\n}\\n\\n.bifa-events-search-btn {\\n    position: absolute;\\n    right: 8px;\\n    top: 50%;\\n    transform: translateY(-50%);\\n    width: 40px;\\n    height: 40px;\\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\\n    border: none;\\n    border-radius: 50%;\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n    cursor: pointer;\\n    transition: var(--bifa-transition);\\n}\\n\\n.bifa-events-search-btn:hover {\\n    transform: translateY(-50%) scale(1.1);\\n    box-shadow: 0 8px 20px rgba(212, 175, 55, 0.4);\\n}\\n\\n.bifa-events-search-btn svg {\\n    width: 18px;\\n    height: 18px;\\n    stroke: var(--bifa-deep-navy);\\n    stroke-width: 2.5;\\n}\\n\\n.bifa-events-filter-options {\\n    display: flex;\\n    gap: 15px;\\n    flex-wrap: wrap;\\n}\\n\\n.bifa-events-filter-btn {\\n    padding: 12px 24px;\\n    border: 2px solid rgba(212, 175, 55, 0.3);\\n    background: white;\\n    border-radius: 30px;\\n    font-family: var(--bifa-font-heading);\\n    font-weight: 600;\\n    font-size: 0.9rem;\\n    color: var(--bifa-deep-navy);\\n    cursor: pointer;\\n    transition: var(--bifa-transition);\\n    text-transform: uppercase;\\n    letter-spacing: 0.5px;\\n}\\n\\n.bifa-events-filter-btn.active,\\n.bifa-events-filter-btn:hover {\\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\\n    border-color: var(--bifa-heritage-gold);\\n    color: var(--bifa-deep-navy);\\n    transform: translateY(-2px);\\n    box-shadow: 0 8px 20px rgba(212, 175, 55, 0.3);\\n}\\n\\n\\\/* =========  LOADING STATE  ========= *\\\/\\n.bifa-events-loading-container {\\n    display: flex;\\n    flex-direction: column;\\n    align-items: center;\\n    justify-content: center;\\n    min-height: 500px;\\n    gap: 30px;\\n}\\n\\n.bifa-events-loader {\\n    width: 100px;\\n    height: 100px;\\n    position: relative;\\n}\\n\\n.bifa-events-loader-ring {\\n    position: absolute;\\n    width: 100%;\\n    height: 100%;\\n    border: 4px solid transparent;\\n    border-radius: 50%;\\n    animation: loaderSpinEvents 2s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;\\n}\\n\\n.bifa-events-loader-ring:nth-child(1) {\\n    border-top-color: var(--bifa-heritage-gold);\\n    animation-delay: 0s;\\n}\\n\\n.bifa-events-loader-ring:nth-child(2) {\\n    width: 75%;\\n    height: 75%;\\n    top: 12.5%;\\n    left: 12.5%;\\n    border-right-color: var(--bifa-deep-navy);\\n    animation-delay: 0.3s;\\n    animation-direction: reverse;\\n}\\n\\n.bifa-events-loader-ring:nth-child(3) {\\n    width: 50%;\\n    height: 50%;\\n    top: 25%;\\n    left: 25%;\\n    border-bottom-color: var(--bifa-civic-green);\\n    animation-delay: 0.6s;\\n}\\n\\n@keyframes loaderSpinEvents {\\n    0% { \\n        transform: rotate(0deg) scale(1);\\n    }\\n    50% {\\n        transform: rotate(180deg) scale(1.1);\\n    }\\n    100% { \\n        transform: rotate(360deg) scale(1);\\n    }\\n}\\n\\n.events-loading-text {\\n    font-family: var(--bifa-font-heading);\\n    font-size: 1.4rem;\\n    font-weight: 700;\\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\\n    -webkit-background-clip: text;\\n    background-clip: text;\\n    color: transparent;\\n    animation: textGlowEvents 2.5s ease-in-out infinite;\\n}\\n\\n\\\/* =========  EVENTS GRID  ========= *\\\/\\n.bifa-events-grid {\\n    display: grid;\\n    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\\n    gap: 40px;\\n    margin-bottom: 80px;\\n}\\n\\n\\\/* =========  EVENT CARD PREMIUM  ========= *\\\/\\n.bifa-event-card {\\n    background: white;\\n    backdrop-filter: blur(20px);\\n    border-radius: 25px;\\n    overflow: hidden;\\n    box-shadow: 0 8px 30px rgba(10, 31, 68, 0.08);\\n    transition: var(--bifa-transition);\\n    cursor: pointer;\\n    position: relative;\\n    border: none;\\n    opacity: 0;\\n    animation: fadeInUpEvents 1.2s ease forwards;\\n}\\n\\n.bifa-event-card:nth-child(1) { animation-delay: 0.1s; }\\n.bifa-event-card:nth-child(2) { animation-delay: 0.2s; }\\n.bifa-event-card:nth-child(3) { animation-delay: 0.3s; }\\n.bifa-event-card:nth-child(4) { animation-delay: 0.4s; }\\n.bifa-event-card:nth-child(5) { animation-delay: 0.5s; }\\n.bifa-event-card:nth-child(6) { animation-delay: 0.6s; }\\n\\n.bifa-event-card::before {\\n    content: '';\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    height: 3px;\\n    background: linear-gradient(90deg, transparent, var(--bifa-heritage-gold), transparent);\\n    transform: scaleX(0);\\n    transition: transform 0.4s ease;\\n}\\n\\n.bifa-event-card:hover::before {\\n    transform: scaleX(1);\\n}\\n\\n.bifa-event-card:hover {\\n    transform: translateY(-10px) scale(1.02);\\n    box-shadow: 0 20px 50px rgba(10, 31, 68, 0.15);\\n}\\n\\n.bifa-event-image {\\n    position: relative;\\n    height: 240px;\\n    background-size: cover;\\n    background-position: center;\\n    overflow: hidden;\\n}\\n\\n.bifa-event-image::before {\\n    content: '';\\n    position: absolute;\\n    inset: 0;\\n    background: linear-gradient(180deg, \\n        transparent 0%, \\n        transparent 60%, \\n        rgba(10, 31, 68, 0.8) 100%\\n    );\\n    transition: opacity 0.4s ease;\\n}\\n\\n.bifa-event-card:hover .bifa-event-image::before {\\n    opacity: 0.9;\\n}\\n\\n\\\/* Shimmer effect *\\\/\\n.bifa-event-image::after {\\n    content: '';\\n    position: absolute;\\n    top: -50%;\\n    left: -100%;\\n    width: 50%;\\n    height: 200%;\\n    background: linear-gradient(90deg, \\n        transparent 0%, \\n        rgba(255, 255, 255, 0.4) 50%, \\n        transparent 100%\\n    );\\n    transform: skewX(-25deg);\\n    transition: left 1s ease;\\n}\\n\\n.bifa-event-card:hover .bifa-event-image::after {\\n    left: 150%;\\n}\\n\\n\\\/* Event Status Badge *\\\/\\n.bifa-event-status {\\n    position: absolute;\\n    top: 25px;\\n    left: 25px;\\n    padding: 10px 24px;\\n    border-radius: 30px;\\n    font-family: var(--bifa-font-heading);\\n    font-weight: 800;\\n    font-size: 0.8rem;\\n    text-transform: uppercase;\\n    letter-spacing: 1px;\\n    z-index: 2;\\n    backdrop-filter: blur(10px);\\n    transition: all 0.3s ease;\\n}\\n\\n.bifa-event-status.upcoming {\\n    background: rgba(219, 234, 254, 0.9);\\n    color: #1e40af;\\n    border: 1px solid rgba(30, 64, 175, 0.2);\\n    box-shadow: 0 10px 25px rgba(30, 64, 175, 0.2);\\n}\\n\\n.bifa-event-status.ongoing {\\n    background: rgba(220, 252, 231, 0.9);\\n    color: #166534;\\n    border: 1px solid rgba(22, 101, 52, 0.2);\\n    box-shadow: 0 10px 25px rgba(22, 101, 52, 0.3);\\n    animation: pulseGreenEvents 2s ease-in-out infinite;\\n}\\n\\n@keyframes pulseGreenEvents {\\n    0%, 100% { box-shadow: 0 10px 25px rgba(22, 101, 52, 0.3); }\\n    50% { box-shadow: 0 15px 35px rgba(22, 101, 52, 0.5); }\\n}\\n\\n.bifa-event-status.past {\\n    background: rgba(243, 244, 246, 0.9);\\n    color: #6b7280;\\n    border: 1px solid rgba(107, 114, 128, 0.2);\\n    box-shadow: 0 10px 25px rgba(107, 114, 128, 0.2);\\n}\\n\\n.bifa-event-badge {\\n    position: absolute;\\n    top: 25px;\\n    right: 25px;\\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\\n    color: var(--bifa-deep-navy);\\n    padding: 10px 24px;\\n    border-radius: 30px;\\n    font-family: var(--bifa-font-heading);\\n    font-weight: 800;\\n    font-size: 0.8rem;\\n    text-transform: uppercase;\\n    letter-spacing: 1px;\\n    z-index: 2;\\n    box-shadow: 0 10px 25px rgba(212, 175, 55, 0.3);\\n    transition: all 0.3s ease;\\n}\\n\\n.bifa-event-card:hover .bifa-event-badge {\\n    transform: translateY(-3px);\\n    box-shadow: 0 15px 35px rgba(212, 175, 55, 0.4);\\n}\\n\\n.bifa-event-content {\\n    padding: 35px;\\n}\\n\\n.bifa-event-dates {\\n    margin-bottom: 20px;\\n}\\n\\n.bifa-event-date {\\n    font-family: var(--bifa-font-heading);\\n    font-size: 1.1rem;\\n    font-weight: 700;\\n    color: var(--bifa-deep-navy);\\n    display: flex;\\n    align-items: center;\\n    gap: 10px;\\n}\\n\\n.bifa-event-date::before {\\n    content: '';\\n    width: 8px;\\n    height: 8px;\\n    background: var(--bifa-heritage-gold);\\n    border-radius: 50%;\\n}\\n\\n.bifa-event-date-range {\\n    font-family: var(--bifa-font-body);\\n    font-size: 0.9rem;\\n    color: var(--bifa-gray);\\n    margin-top: 5px;\\n    padding-left: 18px;\\n}\\n\\n.bifa-event-title {\\n    font-family: var(--bifa-font-heading);\\n    font-size: 1.35rem;\\n    font-weight: 800;\\n    color: var(--bifa-deep-navy);\\n    line-height: 1.4;\\n    margin-bottom: 18px;\\n    display: -webkit-box;\\n    -webkit-line-clamp: 2;\\n    -webkit-box-orient: vertical;\\n    overflow: hidden;\\n    transition: color 0.3s ease;\\n}\\n\\n.bifa-event-card:hover .bifa-event-title {\\n    background: linear-gradient(135deg, var(--bifa-deep-navy), #162e5a);\\n    -webkit-background-clip: text;\\n    background-clip: text;\\n    color: transparent;\\n}\\n\\n.bifa-event-location {\\n    font-family: var(--bifa-font-body);\\n    font-size: 1rem;\\n    color: #4a5568;\\n    line-height: 1.5;\\n    display: flex;\\n    align-items: center;\\n    gap: 8px;\\n    margin-bottom: 30px;\\n}\\n\\n.bifa-event-location svg {\\n    width: 16px;\\n    height: 16px;\\n    stroke: var(--bifa-heritage-gold);\\n    flex-shrink: 0;\\n}\\n\\n.bifa-event-footer {\\n    display: flex;\\n    justify-content: space-between;\\n    align-items: center;\\n    padding-top: 25px;\\n    border-top: 1px solid rgba(212, 175, 55, 0.2);\\n}\\n\\n.bifa-event-link {\\n    display: inline-flex;\\n    align-items: center;\\n    gap: 10px;\\n    color: var(--bifa-heritage-gold);\\n    font-family: var(--bifa-font-heading);\\n    font-weight: 700;\\n    font-size: 0.95rem;\\n    text-decoration: none;\\n    text-transform: uppercase;\\n    letter-spacing: 0.5px;\\n    transition: var(--bifa-transition);\\n    position: relative;\\n}\\n\\n.bifa-event-link::after {\\n    content: '';\\n    position: absolute;\\n    bottom: -3px;\\n    left: 0;\\n    width: 0;\\n    height: 2px;\\n    background: linear-gradient(90deg, var(--bifa-heritage-gold), #ffd700);\\n    transition: width 0.3s ease;\\n}\\n\\n.bifa-event-link:hover {\\n    gap: 15px;\\n}\\n\\n.bifa-event-link:hover::after {\\n    width: calc(100% - 25px);\\n}\\n\\n.bifa-event-link svg {\\n    width: 18px;\\n    height: 18px;\\n    stroke: currentColor;\\n    stroke-width: 2.5;\\n    transition: transform 0.3s ease;\\n}\\n\\n.bifa-event-link:hover svg {\\n    transform: translateX(5px);\\n}\\n\\n.bifa-event-stats {\\n    display: flex;\\n    gap: 20px;\\n    font-size: 0.85rem;\\n    color: var(--bifa-gray);\\n}\\n\\n.bifa-event-stat {\\n    display: flex;\\n    align-items: center;\\n    gap: 5px;\\n}\\n\\n.bifa-event-stat svg {\\n    width: 14px;\\n    height: 14px;\\n    stroke: currentColor;\\n}\\n\\n\\\/* =========  PAGINATION  ========= *\\\/\\n.bifa-events-pagination {\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n    gap: 15px;\\n    margin-top: 60px;\\n    opacity: 0;\\n    animation: fadeInUpEvents 1.2s ease 1s forwards;\\n}\\n\\n.bifa-events-pagination-btn {\\n    width: 50px;\\n    height: 50px;\\n    border: 2px solid rgba(212, 175, 55, 0.3);\\n    background: white;\\n    border-radius: 50%;\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n    cursor: pointer;\\n    transition: var(--bifa-transition);\\n    font-family: var(--bifa-font-heading);\\n    font-weight: 700;\\n    color: var(--bifa-deep-navy);\\n    text-decoration: none;\\n}\\n\\n.bifa-events-pagination-btn.active,\\n.bifa-events-pagination-btn:hover {\\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\\n    border-color: var(--bifa-heritage-gold);\\n    transform: scale(1.1);\\n    box-shadow: 0 10px 25px rgba(212, 175, 55, 0.3);\\n}\\n\\n.bifa-events-pagination-btn svg {\\n    width: 20px;\\n    height: 20px;\\n    stroke: currentColor;\\n    stroke-width: 2.5;\\n}\\n\\n\\\/* =========  ERROR STATE  ========= *\\\/\\n.bifa-events-error-container {\\n    display: none;\\n    text-align: center;\\n    padding: 100px 20px;\\n    animation: fadeInEvents 0.5s ease-out;\\n}\\n\\n.bifa-events-error-icon {\\n    width: 120px;\\n    height: 120px;\\n    margin: 0 auto 40px;\\n    background: linear-gradient(135deg, #FF6B6B, #FF4757);\\n    border-radius: 50%;\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n    box-shadow: 0 25px 60px rgba(255, 71, 87, 0.3);\\n    animation: errorPulseEvents 2s ease-in-out infinite;\\n}\\n\\n@keyframes errorPulseEvents {\\n    0%, 100% {\\n        transform: scale(1);\\n        box-shadow: 0 25px 60px rgba(255, 71, 87, 0.3);\\n    }\\n    50% {\\n        transform: scale(1.05);\\n        box-shadow: 0 30px 70px rgba(255, 71, 87, 0.4);\\n    }\\n}\\n\\n.bifa-events-error-icon svg {\\n    width: 60px;\\n    height: 60px;\\n    stroke: white;\\n    stroke-width: 3;\\n}\\n\\n.bifa-events-error-title {\\n    font-family: var(--bifa-font-heading);\\n    font-size: 2.2rem;\\n    font-weight: 800;\\n    color: var(--bifa-deep-navy);\\n    margin-bottom: 25px;\\n}\\n\\n.bifa-events-error-message {\\n    font-family: var(--bifa-font-body);\\n    font-size: 1.2rem;\\n    color: #4a5568;\\n    margin-bottom: 50px;\\n    max-width: 600px;\\n    margin-left: auto;\\n    margin-right: auto;\\n    line-height: 1.7;\\n}\\n\\n.bifa-events-retry-btn {\\n    display: inline-flex;\\n    align-items: center;\\n    gap: 12px;\\n    background: linear-gradient(135deg, var(--bifa-heritage-gold), #ffd700);\\n    color: var(--bifa-deep-navy);\\n    padding: 18px 40px;\\n    border-radius: 50px;\\n    font-family: var(--bifa-font-heading);\\n    font-weight: 800;\\n    font-size: 1rem;\\n    text-decoration: none;\\n    cursor: pointer;\\n    border: none;\\n    text-transform: uppercase;\\n    letter-spacing: 1px;\\n    transition: var(--bifa-transition);\\n    box-shadow: 0 18px 45px rgba(212, 175, 55, 0.3);\\n    position: relative;\\n    overflow: hidden;\\n}\\n\\n.bifa-events-retry-btn::before {\\n    content: '';\\n    position: absolute;\\n    top: 50%;\\n    left: 50%;\\n    width: 0;\\n    height: 0;\\n    border-radius: 50%;\\n    background: rgba(255, 255, 255, 0.3);\\n    transform: translate(-50%, -50%);\\n    transition: all 0.6s ease;\\n}\\n\\n.bifa-events-retry-btn:hover {\\n    transform: translateY(-3px);\\n    box-shadow: 0 25px 60px rgba(212, 175, 55, 0.4);\\n}\\n\\n.bifa-events-retry-btn:hover::before {\\n    width: 300px;\\n    height: 300px;\\n}\\n\\n.bifa-events-retry-btn svg {\\n    width: 22px;\\n    height: 22px;\\n    transition: transform 0.3s ease;\\n}\\n\\n.bifa-events-retry-btn:hover svg {\\n    transform: rotate(180deg);\\n}\\n\\n\\\/* =========  ANIMATIONS  ========= *\\\/\\n@keyframes fadeInEvents {\\n    from { opacity: 0; }\\n    to { opacity: 1; }\\n}\\n\\n@keyframes fadeInDownEvents {\\n    from {\\n        opacity: 0;\\n        transform: translateY(-50px);\\n    }\\n    to {\\n        opacity: 1;\\n        transform: translateY(0);\\n    }\\n}\\n\\n@keyframes fadeInUpEvents {\\n    from {\\n        opacity: 0;\\n        transform: translateY(50px);\\n    }\\n    to {\\n        opacity: 1;\\n        transform: translateY(0);\\n    }\\n}\\n\\n@keyframes textGlowEvents {\\n    0%, 100% {\\n        text-shadow: 0 0 8px rgba(212, 175, 55, 0.5);\\n    }\\n    50% {\\n        text-shadow: 0 0 25px rgba(212, 175, 55, 0.8), 0 0 35px rgba(212, 175, 55, 0.6);\\n    }\\n}\\n\\n\\\/* =========  RESPONSIVE - \\u0411\\u0415\\u0417 \\u041a\\u041e\\u041d\\u0424\\u041b\\u0418\\u041a\\u0422\\u0410 \\u0421 \\u0428\\u0410\\u041f\\u041a\\u041e\\u0419  ========= *\\\/\\n@media (max-width: 1200px) {\\n    .bifa-events-grid {\\n        grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\\n        gap: 35px;\\n    }\\n}\\n\\n@media (max-width: 992px) {\\n    .bifa-events-filter-bar {\\n        flex-direction: column;\\n        align-items: stretch;\\n        gap: 25px;\\n    }\\n    \\n    .bifa-events-search-container {\\n        max-width: none;\\n    }\\n    \\n    .bifa-events-filter-options {\\n        justify-content: center;\\n    }\\n    \\n    .bifa-events-main-content {\\n        padding: 60px 0 40px 0;\\n    }\\n}\\n\\n@media (max-width: 768px) {\\n    .bifa-events-main-content {\\n        padding: 40px 0 30px 0;\\n    }\\n    \\n    .bifa-events-page-header {\\n        margin-bottom: 50px;\\n    }\\n    \\n    .bifa-events-grid {\\n        grid-template-columns: 1fr;\\n        gap: 25px;\\n    }\\n    \\n    .bifa-event-content {\\n        padding: 25px;\\n    }\\n    \\n    .bifa-events-pagination {\\n        gap: 10px;\\n    }\\n    \\n    .bifa-events-pagination-btn {\\n        width: 45px;\\n        height: 45px;\\n    }\\n}\\n\\n@media (max-width: 480px) {\\n    .bifa-events-main-content {\\n        padding: 20px 0;\\n    }\\n    \\n    .bifa-events-page-title {\\n        font-size: 2.5rem;\\n    }\\n    \\n    .bifa-events-page-subtitle {\\n        font-size: 1.2rem;\\n        letter-spacing: 1px;\\n    }\\n    \\n    .bifa-events-filter-options {\\n        flex-direction: column;\\n        align-items: center;\\n    }\\n    \\n    .bifa-events-filter-btn {\\n        width: 100%;\\n        max-width: 200px;\\n        text-align: center;\\n    }\\n    \\n    .bifa-event-content {\\n        padding: 20px;\\n    }\\n    \\n    .bifa-event-footer {\\n        flex-direction: column;\\n        gap: 15px;\\n        align-items: flex-start;\\n    }\\n    \\n    .bifa-event-stats {\\n        width: 100%;\\n        justify-content: space-between;\\n    }\\n}\\n<\\\/style>\\n<\\\/head>\\n<body>\\n\\n<\/p>\n<div class=\"\\\"bifa-events-page-wrapper\\\"\">\\n    <!-- Animated Background -->\\n    <\/p>\n<div class=\"\\\"events-page-bg-animation\\\"\">\\n        <!-- Floating shapes -->\\n        <\/p>\n<div class=\"\\\"events-floating-shape\" events-shape-page-1\\\"><\\\/div>\\n        <\/p>\n<div class=\"\\\"events-floating-shape\" events-shape-page-2\\\"><\\\/div>\\n        <\/p>\n<div class=\"\\\"events-floating-shape\" events-shape-page-3\\\"><\\\/div>\\n        <!-- Golden particles will be added by JavaScript -->\\n    <\\\/div>\\n\\n    <!-- Main Content -->\\n    <main class=\"\\\"bifa-events-main-content\\\"\">\\n        <\/p>\n<div class=\"\\\"bifa-events-container\\\"\">\\n            <!-- Page Header -->\\n            <\/p>\n<div class=\"\\\"bifa-events-page-header\\\"\">\\n                <\/p>\n<h1 class=\"\\\"bifa-events-page-title\\\"\">Events Center<\\\/h1>\\n                <\/p>\n<p class=\"\\\"bifa-events-page-subtitle\\\"\">Tournaments & Conferences<\\\/p>\\n                <\/p>\n<p class=\"\\\"bifa-events-page-description\\\"\">\\n                    Join BIFA+ international events, tournaments, and conferences. Be part of the global football community shaping the future of the sport.\\n                <\\\/p>\\n            <\\\/div>\\n\\n            <!-- Search & Filter Bar -->\\n            <\/p>\n<div class=\"\\\"bifa-events-filter-bar\\\"\">\\n                <\/p>\n<div class=\"\\\"bifa-events-search-container\\\"\">\\n                    <input type=\"\\\"text\\\"\" class=\"\\\"bifa-events-search-input\\\"\" placeholder=\"\\\"Search\" events...\\\" id=\"\\\"bifaEventsSearchInput\\\"\">\\n                    <button class=\"\\\"bifa-events-search-btn\\\"\" id=\"\\\"bifaEventsSearchBtn\\\"\">\\n                        <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                            <circle cx=\"\\\"11\\\"\" cy=\"\\\"11\\\"\" r=\"\\\"8\\\"\"><\\\/circle>\\n                            <path d=\"\\\"m21\" 21-4.35-4.35\\\"><\\\/path>\\n                        <\\\/svg>\\n                    <\\\/button>\\n                <\\\/div>\\n                \\n                <\/p>\n<div class=\"\\\"bifa-events-filter-options\\\"\">\\n                    <button class=\"\\\"bifa-events-filter-btn\" active\\\" data-filter=\"\\\"all\\\"\">All Events<\\\/button>\\n                    <button class=\"\\\"bifa-events-filter-btn\\\"\" data-filter=\"\\\"upcoming\\\"\">Upcoming<\\\/button>\\n                    <button class=\"\\\"bifa-events-filter-btn\\\"\" data-filter=\"\\\"ongoing\\\"\">Live Now<\\\/button>\\n                    <button class=\"\\\"bifa-events-filter-btn\\\"\" data-filter=\"\\\"past\\\"\">Past Events<\\\/button>\\n                <\\\/div>\\n            <\\\/div>\\n\\n            <!-- Loading State -->\\n            <\/p>\n<div id=\"\\\"bifaEventsLoadingState\\\"\" class=\"\\\"bifa-events-loading-container\\\"\">\\n                <\/p>\n<div class=\"\\\"bifa-events-loader\\\"\">\\n                    <\/p>\n<div class=\"\\\"bifa-events-loader-ring\\\"\"><\\\/div>\\n                    <\/p>\n<div class=\"\\\"bifa-events-loader-ring\\\"\"><\\\/div>\\n                    <\/p>\n<div class=\"\\\"bifa-events-loader-ring\\\"\"><\\\/div>\\n                <\\\/div>\\n                <\/p>\n<p class=\"\\\"events-loading-text\\\"\">Loading Events...<\\\/p>\\n            <\\\/div>\\n\\n            <!-- Events Grid -->\\n            <\/p>\n<div id=\"\\\"bifaEventsGrid\\\"\" class=\"\\\"bifa-events-grid\\\"\" style=\"\\\"display:\" none;\\\">\\n                <!-- Event cards will be dynamically loaded -->\\n            <\\\/div>\\n\\n            <!-- Pagination -->\\n            <\/p>\n<div id=\"\\\"bifaEventsPagination\\\"\" class=\"\\\"bifa-events-pagination\\\"\" style=\"\\\"display:\" none;\\\">\\n                <!-- Pagination will be dynamically loaded -->\\n            <\\\/div>\\n\\n            <!-- Error State -->\\n            <\/p>\n<div id=\"\\\"bifaEventsErrorState\\\"\" class=\"\\\"bifa-events-error-container\\\"\">\\n                <\/p>\n<div class=\"\\\"bifa-events-error-icon\\\"\">\\n                    <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                        <path d=\"\\\"M12\" 9v13m12 17h12.01m21 12c21 16.9706 21 12 21c7.02944 3 12c3 7.02944 3c16.9706 12z\\\" stroke =\"\\\"currentColor\\\"\" stroke-linecap =\"\\\"round\\\"\" stroke-linejoin =\"\\\"round\\\"\\\/\">\\n                    <\\\/svg>\\n                <\\\/div>\\n                <\/p>\n<h3 class=\"\\\"bifa-events-error-title\\\"\">Unable to Load Events<\\\/h3>\\n                <\/p>\n<p class=\"\\\"bifa-events-error-message\\\"\">We're having trouble fetching the events. Please check your connection and try again.<\\\/p>\\n                <button class=\"\\\"bifa-events-retry-btn\\\"\" onclick=\"\\\"BifaEventsPage.loadEvents()\\\"\">\\n                    <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                        <path d=\"\\\"M1\" 4v10h7m23 20v14h17m20.49 9c19.62 5.33 16.31 2.5 12.23 2.5c7.09 2.7 7.17 3.04 12.5c3.38 17.83 8.09 22 13.5 22c17.83 21.53 19.19 22.68 15.36m12 8v12l15 15\\\" stroke =\"\\\"currentColor\\\"\" stroke-width =\"\\\"2\\\"\" stroke-linecap=\"\\\"round\\\"\" stroke-linejoin=\"\\\"round\\\"\\\/\">\\n                    <\\\/svg>\\n                    <span>Retry<\\\/span>\\n                <\\\/button>\\n            <\\\/div>\\n        <\\\/div>\\n    <\\\/main>\\n<\\\/div>\\n\\n<script>\\n\\\/\\\/ BIFA+ Premium Events Page Module\\nconst BifaEventsPage = {\\n    \\\/\\\/ Configuration\\n    config: {\\n        apiUrl: 'https:\\\/\\\/bifa.ai\\\/wp-json\\\/wp\\\/v2\\\/bifa_news_events',\\n        perPage: 12,\\n        currentPage: 1,\\n        totalPages: 1,\\n        eventsParams: '_embed&per_page=50&orderby=date&order=desc&meta_query[relation]=AND&meta_query[0][key]=_bifa_event_date&meta_query[0][compare]=EXISTS&meta_query[1][key]=_bifa_event_date&meta_query[1][value]=&meta_query[1][compare]=!=',\\n        allEvents: [],\\n        filteredEvents: [],\\n        currentFilter: 'all',\\n        searchQuery: ''\\n    },\\n\\n    \\\/\\\/ Initialize\\n    init() {\\n        this.createParticles();\\n        this.setupEventListeners();\\n        this.loadEvents();\\n    },\\n\\n    \\\/\\\/ Create golden particles\\n    createParticles() {\\n        const particlesContainer = document.querySelector('.events-page-bg-animation');\\n        const particleCount = 15;\\n\\n        for (let i = 0; i < particleCount; i++) {\\n            const particle = document.createElement('div');\\n            particle.className = 'events-page-particle';\\n            particle.style.left = Math.random() * 100 + '%';\\n            particle.style.animationDelay = Math.random() * 20 + 's';\\n            particle.style.animationDuration = (20 + Math.random() * 10) + 's';\\n            \\n            const size = 3 + Math.random() * 3;\\n            particle.style.width = size + 'px';\\n            particle.style.height = size + 'px';\\n            \\n            particlesContainer.appendChild(particle);\\n        }\\n    },\\n\\n    \\\/\\\/ Setup event listeners\\n    setupEventListeners() {\\n        \\\/\\\/ Search functionality\\n        const searchInput = document.getElementById('bifaEventsSearchInput');\\n        const searchBtn = document.getElementById('bifaEventsSearchBtn');\\n        \\n        if (searchInput) {\\n            searchInput.addEventListener('input', (e) => {\\n                this.config.searchQuery = e.target.value.toLowerCase();\\n                this.filterAndDisplayEvents();\\n            });\\n        }\\n        \\n        if (searchBtn) {\\n            searchBtn.addEventListener('click', () => {\\n                this.filterAndDisplayEvents();\\n            });\\n        }\\n\\n        \\\/\\\/ Filter buttons\\n        const filterBtns = document.querySelectorAll('.bifa-events-filter-btn');\\n        filterBtns.forEach(btn => {\\n            btn.addEventListener('click', (e) => {\\n                \\\/\\\/ Remove active class from all buttons\\n                filterBtns.forEach(b => b.classList.remove('active'));\\n                \\\/\\\/ Add active class to clicked button\\n                e.target.classList.add('active');\\n                \\n                this.config.currentFilter = e.target.dataset.filter;\\n                this.config.currentPage = 1;\\n                this.filterAndDisplayEvents();\\n            });\\n        });\\n    },\\n\\n    \\\/\\\/ Load events from API\\n    async loadEvents() {\\n        const loadingState = document.getElementById('bifaEventsLoadingState');\\n        const eventsGrid = document.getElementById('bifaEventsGrid');\\n        const pagination = document.getElementById('bifaEventsPagination');\\n        const errorState = document.getElementById('bifaEventsErrorState');\\n\\n        try {\\n            \\\/\\\/ Show loading\\n            loadingState.style.display = 'flex';\\n            eventsGrid.style.display = 'none';\\n            pagination.style.display = 'none';\\n            errorState.style.display = 'none';\\n\\n            \\\/\\\/ Fetch all events\\n            const response = await fetch(`${this.config.apiUrl}?${this.config.eventsParams}`);\\n            \\n            if (!response.ok) {\\n                throw new Error('Failed to fetch events');\\n            }\\n\\n            const allData = await response.json();\\n            \\n            \\\/\\\/ Filter only events (with event dates)\\n            const eventsData = allData.filter(item => {\\n                const eventDate = item._bifa_event_date || item.meta?._bifa_event_date;\\n                return eventDate && eventDate !== '';\\n            });\\n\\n            if (eventsData.length === 0) {\\n                throw new Error('No events available');\\n            }\\n\\n            \\\/\\\/ Store all events\\n            this.config.allEvents = eventsData;\\n            this.config.filteredEvents = eventsData;\\n\\n            \\\/\\\/ Hide loading, show content\\n            loadingState.style.display = 'none';\\n            eventsGrid.style.display = 'grid';\\n\\n            \\\/\\\/ Display events\\n            this.filterAndDisplayEvents();\\n\\n        } catch (error) {\\n            console.error('Error loading events:', error);\\n            loadingState.style.display = 'none';\\n            errorState.style.display = 'block';\\n        }\\n    },\\n\\n    \\\/\\\/ Get event status\\n    getEventStatus(startDate, endDate) {\\n        if (!startDate) return 'unknown';\\n        \\n        const now = new Date();\\n        const start = new Date(startDate);\\n        const end = endDate ? new Date(endDate) : start;\\n        \\n        now.setHours(0, 0, 0, 0);\\n        start.setHours(0, 0, 0, 0);\\n        end.setHours(23, 59, 59, 999);\\n        \\n        if (now > end) {\\n            return 'past';\\n        } else if (now >= start && now <= end) {\\n            return 'ongoing';\\n        } else {\\n            return 'upcoming';\\n        }\\n    },\\n\\n    \\\/\\\/ Get status text\\n    getStatusText(status) {\\n        switch(status) {\\n            case 'upcoming': return 'Upcoming';\\n            case 'ongoing': return 'Live Now';\\n            case 'past': return 'Past Event';\\n            default: return '';\\n        }\\n    },\\n\\n    \\\/\\\/ Format date\\n    formatDate(dateStr) {\\n        if (!dateStr) return '';\\n        const date = new Date(dateStr);\\n        return date.toLocaleDateString('en-US', {\\n            month: 'long',\\n            day: 'numeric',\\n            year: 'numeric'\\n        });\\n    },\\n\\n    \\\/\\\/ Filter and display events\\n    filterAndDisplayEvents() {\\n        let filtered = this.config.allEvents;\\n\\n        \\\/\\\/ Apply status filter\\n        if (this.config.currentFilter !== 'all') {\\n            filtered = filtered.filter(event => {\\n                const eventDate = event._bifa_event_date;\\n                const eventEndDate = event._bifa_event_end_date;\\n                const status = this.getEventStatus(eventDate, eventEndDate);\\n                return status === this.config.currentFilter;\\n            });\\n        }\\n\\n        \\\/\\\/ Apply search filter\\n        if (this.config.searchQuery) {\\n            filtered = filtered.filter(event => {\\n                const title = event.title.rendered.toLowerCase();\\n                const location = (event._bifa_location || '').toLowerCase();\\n                return title.includes(this.config.searchQuery) || \\n                       location.includes(this.config.searchQuery);\\n            });\\n        }\\n\\n        this.config.filteredEvents = filtered;\\n        this.config.totalPages = Math.ceil(filtered.length \\\/ this.config.perPage);\\n        \\n        this.renderEvents();\\n        this.renderPagination();\\n    },\\n\\n    \\\/\\\/ Render events grid\\n    renderEvents() {\\n        const eventsGrid = document.getElementById('bifaEventsGrid');\\n        if (!eventsGrid) return;\\n\\n        \\\/\\\/ Calculate start and end indices for current page\\n        const startIndex = (this.config.currentPage - 1) * this.config.perPage;\\n        const endIndex = startIndex + this.config.perPage;\\n        const pageEvents = this.config.filteredEvents.slice(startIndex, endIndex);\\n\\n        \\\/\\\/ Clear existing content\\n        eventsGrid.innerHTML = '';\\n\\n        if (pageEvents.length === 0) {\\n            eventsGrid.innerHTML = `\\n                <\/p>\n<div style=\"\\\"grid-column:\" 1 \\>\\n                    <\/p>\n<h3 style=\"\\\"font-family:\" var(--bifa-font-heading); font-size: 1.5rem; color: var(--bifa-deep-navy); margin-bottom: 10px;\\\">No events found<\\\/h3>\\n                    <\/p>\n<p style=\"\\\"color:\" var(--bifa-gray);\\\">Try adjusting your search or filter criteria.<\\\/p>\\n                <\\\/div>\\n            `;\\n            return;\\n        }\\n\\n        \\\/\\\/ Render each event\\n        pageEvents.forEach((event, index) => {\\n            const card = this.createEventCard(event, index);\\n            eventsGrid.appendChild(card);\\n        });\\n\\n        \\\/\\\/ Scroll to top of grid\\n        eventsGrid.scrollIntoView({ behavior: 'smooth', block: 'start' });\\n    },\\n\\n    \\\/\\\/ Create event card\\n    createEventCard(event, index) {\\n        const card = document.createElement('div');\\n        card.className = 'bifa-event-card';\\n        card.style.animationDelay = `${index * 0.1}s`;\\n\\n        \\\/\\\/ Get data\\n        const media = event._embedded?.['wp:featuredmedia']?.[0];\\n        const imageUrl = media?.source_url || `\\\/wp-content\\\/themes\\\/yootheme-child\\\/assets\\\/images\\\/event-placeholder-${(index % 3) + 1}.jpg`;\\n        const eventDate = event._bifa_event_date;\\n        const eventEndDate = event._bifa_event_end_date;\\n        const location = event._bifa_location || 'Location TBA';\\n        const badge = this.getBadgeText(event);\\n        const status = this.getEventStatus(eventDate, eventEndDate);\\n        const statusText = this.getStatusText(status);\\n\\n        \\\/\\\/ Format dates\\n        let dateDisplay = '';\\n        if (eventEndDate && eventDate !== eventEndDate) {\\n            dateDisplay = `\\n                <\/p>\n<div class=\"\\\"bifa-event-date\\\"\">${this.formatDate(eventDate)}<\\\/div>\\n                <\/p>\n<div class=\"\\\"bifa-event-date-range\\\"\">to ${this.formatDate(eventEndDate)}<\\\/div>\\n            `;\\n        } else {\\n            dateDisplay = `<\/p>\n<div class=\"\\\"bifa-event-date\\\"\">${this.formatDate(eventDate)}<\\\/div>`;\\n        }\\n\\n        card.innerHTML = `\\n            <\/p>\n<div class=\"\\\"bifa-event-image\\\"\" style=\"\\\"background-image:\" url('${imageurl}')\\\">\\n                ${status !== 'unknown' ? `<span class=\"\\\"bifa-event-status\" ${status}\\\">${statusText}<\\\/span>` : ''}\\n                ${badge ? `<span class=\"\\\"bifa-event-badge\\\"\">${badge}<\\\/span>` : ''}\\n            <\\\/div>\\n            <\/p>\n<div class=\"\\\"bifa-event-content\\\"\">\\n                <\/p>\n<div class=\"\\\"bifa-event-dates\\\"\">\\n                    ${dateDisplay}\\n                <\\\/div>\\n                <\/p>\n<h3 class=\"\\\"bifa-event-title\\\"\">${event.title.rendered}<\\\/h3>\\n                <\/p>\n<div class=\"\\\"bifa-event-location\\\"\">\\n                    <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                        <path d=\"\\\"M21\" 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 1 18 0z\\\" stroke =\"\\\"currentColor\\\"\" stroke-width=\"\\\"2\\\"\\\/\">\\n                        <circle cx=\"\\\"12\\\"\" cy=\"\\\"10\\\"\" r=\"\\\"3\\\"\" stroke=\"\\\"currentColor\\\"\" stroke-width=\"\\\"2\\\"\\\/\">\\n                    <\\\/svg>\\n                    <span>${location}<\\\/span>\\n                <\\\/div>\\n                <\/p>\n<div class=\"\\\"bifa-event-footer\\\"\">\\n                    <a href=\"\\\"${event.link}\\\"\" class=\"\\\"bifa-event-link\\\"\" target=\"\\\"_blank\\\"\" onclick=\"\\\"event.stopPropagation()\\\"\">\\n                        <span>Learn More<\\\/span>\\n                        <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                            <path d=\"\\\"M5\" 12h19m19 12l12 5m19 19\\\" stroke =\"\\\"currentColor\\\"\" stroke-width=\"\\\"2\\\"\" stroke-linecap=\"\\\"round\\\"\" stroke-linejoin=\"\\\"round\\\"\\\/\">\\n                        <\\\/svg>\\n                    <\\\/a>\\n                    <\/p>\n<div class=\"\\\"bifa-event-stats\\\"\">\\n                        <\/p>\n<div class=\"\\\"bifa-event-stat\\\"\">\\n                            <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                                <path d=\"\\\"M12\" 8v4l3 3m6-3a9 9 0 11-18 0118 0z\\\" stroke =\"\\\"currentColor\\\"\" stroke-width =\"\\\"2\\\"\" stroke-linecap =\"\\\"round\\\"\" stroke-linejoin =\"\\\"round\\\"\\\/\">\\n                            <\\\/svg>\\n                            <span>${status === 'ongoing' ? 'Live' : status === 'upcoming' ? 'Soon' : 'Ended'}<\\\/span>\\n                        <\\\/div>\\n                        <\/p>\n<div class=\"\\\"bifa-event-stat\\\"\">\\n                            <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                                <path d=\"\\\"M9\" 12l2 2 4-4m6 2a9 9 0 11-18 0118 0z\\\" stroke =\"\\\"currentColor\\\"\" stroke-width =\"\\\"2\\\"\" stroke-linecap =\"\\\"round\\\"\" stroke-linejoin =\"\\\"round\\\"\\\/\">\\n                            <\\\/svg>\\n                            <span>Official<\\\/span>\\n                        <\\\/div>\\n                    <\\\/div>\\n                <\\\/div>\\n            <\\\/div>\\n        `;\\n\\n        \\\/\\\/ Add click handler\\n        card.addEventListener('click', () => {\\n            window.open(event.link, '_blank');\\n        });\\n\\n        return card;\\n    },\\n\\n    \\\/\\\/ Render pagination\\n    renderPagination() {\\n        const pagination = document.getElementById('bifaEventsPagination');\\n        if (!pagination || this.config.totalPages <= 1) {\\n            pagination.style.display = 'none';\\n            return;\\n        }\\n\\n        pagination.style.display = 'flex';\\n        pagination.innerHTML = '';\\n\\n        \\\/\\\/ Previous button\\n        if (this.config.currentPage > 1) {\\n            const prevBtn = document.createElement('a');\\n            prevBtn.className = 'bifa-events-pagination-btn';\\n            prevBtn.href = '#';\\n            prevBtn.innerHTML = `\\n                <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                    <path d=\"\\\"M15\" 18l9 12l15 6\\\" stroke=\"\\\"currentColor\\\"\" stroke-linecap=\"\\\"round\\\"\" stroke-linejoin=\"\\\"round\\\"\\\/\">\\n                <\\\/svg>\\n            `;\\n            prevBtn.addEventListener('click', (e) => {\\n                e.preventDefault();\\n                this.config.currentPage--;\\n                this.renderEvents();\\n                this.renderPagination();\\n            });\\n            pagination.appendChild(prevBtn);\\n        }\\n\\n        \\\/\\\/ Page numbers\\n        const startPage = Math.max(1, this.config.currentPage - 2);\\n        const endPage = Math.min(this.config.totalPages, this.config.currentPage + 2);\\n\\n        for (let i = startPage; i <= endPage; i++) {\\n            const pageBtn = document.createElement('a');\\n            pageBtn.className = `bifa-events-pagination-btn ${i === this.config.currentPage ? 'active' : ''}`;\\n            pageBtn.href = '#';\\n            pageBtn.textContent = i;\\n            pageBtn.addEventListener('click', (e) => {\\n                e.preventDefault();\\n                this.config.currentPage = i;\\n                this.renderEvents();\\n                this.renderPagination();\\n            });\\n            pagination.appendChild(pageBtn);\\n        }\\n\\n        \\\/\\\/ Next button\\n        if (this.config.currentPage < this.config.totalPages) {\\n            const nextBtn = document.createElement('a');\\n            nextBtn.className = 'bifa-events-pagination-btn';\\n            nextBtn.href = '#';\\n            nextBtn.innerHTML = `\\n                <svg viewbox=\"\\\"0\" 0 24 24\\\" fill=\"\\\"none\\\"\">\\n                    <path d=\"\\\"M9\" 18l15 12l9 6\\\" stroke=\"\\\"currentColor\\\"\" stroke-linecap=\"\\\"round\\\"\" stroke-linejoin=\"\\\"round\\\"\\\/\">\\n                <\\\/svg>\\n            `;\\n            nextBtn.addEventListener('click', (e) => {\\n                e.preventDefault();\\n                this.config.currentPage++;\\n                this.renderEvents();\\n                this.renderPagination();\\n            });\\n            pagination.appendChild(nextBtn);\\n        }\\n    },\\n\\n    \\\/\\\/ Get badge text\\n    getBadgeText(event) {\\n        if (event._bifa_badge_text) {\\n            return event._bifa_badge_text;\\n        }\\n        \\n        const category = event._embedded?.['wp:term']?.[0]?.[0];\\n        return category?.name || '';\\n    },\\n\\n    \\\/\\\/ Strip HTML\\n    stripHtml(html) {\\n        const temp = document.createElement('div');\\n        temp.innerHTML = html;\\n        return temp.textContent || temp.innerText || '';\\n    }\\n};\\n\\n\\\/\\\/ Initialize when DOM is ready\\ndocument.addEventListener('DOMContentLoaded', () => {\\n    BifaEventsPage.init();\\n});\\n<\\\/script>\\n\\n<\\\/body>\\n<\\\/html>\"}}]}]}]}],\"version\":\"4.5.20\"} --><\/p>","protected":false},"excerpt":{"rendered":"<p>BIFA+ Events &#8211; Upcoming Tournaments &#038; Conferences Events Center Tournaments &#038; Conferences Join BIFA+ international events, tournaments, and conferences. Be part of the global football community shaping the future of the sport. All Events Upcoming Live Now Past Events Loading Events&#8230; Unable to Load Events We&#8217;re having trouble fetching the events. Please check your connection [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-712","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/bifa.ai\/hi\/wp-json\/wp\/v2\/pages\/712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bifa.ai\/hi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bifa.ai\/hi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bifa.ai\/hi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bifa.ai\/hi\/wp-json\/wp\/v2\/comments?post=712"}],"version-history":[{"count":6,"href":"https:\/\/bifa.ai\/hi\/wp-json\/wp\/v2\/pages\/712\/revisions"}],"predecessor-version":[{"id":780,"href":"https:\/\/bifa.ai\/hi\/wp-json\/wp\/v2\/pages\/712\/revisions\/780"}],"wp:attachment":[{"href":"https:\/\/bifa.ai\/hi\/wp-json\/wp\/v2\/media?parent=712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}