{"id":798,"date":"2026-10-04T21:01:24","date_gmt":"2026-10-04T20:01:24","guid":{"rendered":"https:\/\/barnetjudo.co.uk\/?page_id=798"},"modified":"2026-10-04T21:43:18","modified_gmt":"2026-10-04T20:43:18","slug":"bjc-events","status":"publish","type":"page","link":"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/","title":{"rendered":"Events"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n\/* ================================================================\n   BARNET JUDO CLUB\n   EVENTS V2\n   PAGE ID: 798\n\n   Full replacement stylesheet\n================================================================ *\/\n\n\n\/* ================================================================\n   01. VARIABLES\n================================================================ *\/\n\n:root {\n    --bjce-black: #070708;\n    --bjce-black-soft: #0d0d0f;\n    --bjce-charcoal: #151518;\n\n    --bjce-white: #ffffff;\n    --bjce-offwhite: #f3f1ed;\n    --bjce-cream: #ebe7df;\n\n    --bjce-burgundy: #65001f;\n    --bjce-burgundy-dark: #35000f;\n\n    --bjce-red: #d62828;\n    --bjce-red-bright: #ef3636;\n\n    --bjce-gold: #d8ad35;\n\n    --bjce-grey: #8b8b90;\n    --bjce-grey-light: #d7d5d1;\n\n    --bjce-border: rgba(7, 7, 8, 0.14);\n\n    --bjce-max: 1280px;\n}\n\n\n\/* ================================================================\n   02. WORDPRESS \/ CODIFY PAGE RESET\n   IMPORTANT:\n   Restrained to page 798 only.\n================================================================ *\/\n\nbody.page-id-798 {\n    margin: 0 !important;\n    padding: 0 !important;\n    background: var(--bjce-black) !important;\n}\n\nbody.page-id-798 #masthead,\nbody.page-id-798 header.site-header,\nbody.page-id-798 .site-header,\nbody.page-id-798 #colophon,\nbody.page-id-798 footer.site-footer,\nbody.page-id-798 .site-footer,\nbody.page-id-798 #secondary,\nbody.page-id-798 .widget-area,\nbody.page-id-798 .entry-header,\nbody.page-id-798 .entry-title,\nbody.page-id-798 .page-header,\nbody.page-id-798 .breadcrumbs,\nbody.page-id-798 .breadcrumb,\nbody.page-id-798 .post-navigation,\nbody.page-id-798 .comments-area {\n    display: none !important;\n}\n\nbody.page-id-798 #page,\nbody.page-id-798 .site,\nbody.page-id-798 #content,\nbody.page-id-798 .site-content,\nbody.page-id-798 .content-area,\nbody.page-id-798 #primary,\nbody.page-id-798 main.site-main,\nbody.page-id-798 article,\nbody.page-id-798 .hentry,\nbody.page-id-798 .entry-content,\nbody.page-id-798 .container,\nbody.page-id-798 .container-fluid,\nbody.page-id-798 .row,\nbody.page-id-798 .theiaStickySidebar {\n    width: 100% !important;\n    max-width: none !important;\n    min-width: 0 !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    border: 0 !important;\n    box-shadow: none !important;\n\n    float: none !important;\n}\n\nbody.page-id-798 #page,\nbody.page-id-798 #content,\nbody.page-id-798 .site-content,\nbody.page-id-798 #primary,\nbody.page-id-798 main.site-main,\nbody.page-id-798 article,\nbody.page-id-798 .entry-content {\n    background: transparent !important;\n}\n\nbody.page-id-798 .entry-content::before,\nbody.page-id-798 .entry-content::after,\nbody.page-id-798 article::before,\nbody.page-id-798 article::after,\nbody.page-id-798 #content::before,\nbody.page-id-798 #content::after {\n    display: none !important;\n    content: none !important;\n}\n\n\n\/* ================================================================\n   03. BASE\n================================================================ *\/\n\n.bjce-site,\n.bjce-site *,\n.bjce-site *::before,\n.bjce-site *::after {\n    box-sizing: border-box;\n}\n\n.bjce-site {\n    width: 100%;\n    overflow: hidden;\n\n    background: var(--bjce-white);\n    color: var(--bjce-black);\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    -webkit-font-smoothing: antialiased;\n    text-rendering: optimizeLegibility;\n}\n\n.bjce-site img {\n    max-width: 100%;\n    height: auto;\n}\n\n.bjce-site a {\n    color: inherit;\n    text-decoration: none;\n}\n\n.bjce-site button,\n.bjce-site input {\n    font: inherit;\n}\n\n.bjce-site button {\n    cursor: pointer;\n}\n\n.bjce-container {\n    width: min(calc(100% - 96px), var(--bjce-max));\n    margin: 0 auto;\n}\n\n.bjce-sr-only {\n    position: absolute !important;\n\n    width: 1px !important;\n    height: 1px !important;\n\n    padding: 0 !important;\n    margin: -1px !important;\n\n    overflow: hidden !important;\n    clip: rect(0, 0, 0, 0) !important;\n\n    white-space: nowrap !important;\n    border: 0 !important;\n}\n\n\n\/* ================================================================\n   04. HEADER\n================================================================ *\/\n\n.bjce-header {\n    position: relative;\n    z-index: 100;\n\n    width: 100%;\n\n    background: var(--bjce-black);\n    color: var(--bjce-white);\n\n    border-top: 2px solid transparent;\n    border-image:\n        linear-gradient(\n            90deg,\n            var(--bjce-red),\n            var(--bjce-burgundy),\n            var(--bjce-gold)\n        ) 1;\n}\n\n.bjce-header-inner {\n    width: min(calc(100% - 72px), 1380px);\n    min-height: 94px;\n\n    margin: 0 auto;\n\n    display: flex;\n    align-items: stretch;\n    justify-content: space-between;\n}\n\n.bjce-brand {\n    display: flex;\n    align-items: center;\n    gap: 14px;\n\n    min-width: 245px;\n}\n\n.bjce-brand-mark {\n    width: 37px;\n    height: 54px;\n\n    object-fit: contain;\n\n    filter:\n        brightness(0)\n        saturate(100%)\n        invert(20%)\n        sepia(100%)\n        saturate(5455%)\n        hue-rotate(352deg)\n        brightness(92%)\n        contrast(92%);\n}\n\n.bjce-brand-copy {\n    display: flex;\n    flex-direction: column;\n\n    line-height: 1;\n}\n\n.bjce-brand-copy strong {\n    color: var(--bjce-white);\n\n    font-size: 21px;\n    font-weight: 900;\n    letter-spacing: 0.12em;\n}\n\n.bjce-brand-copy small {\n    margin-top: 8px;\n\n    color: var(--bjce-gold);\n\n    font-size: 8px;\n    font-weight: 800;\n    letter-spacing: 0.42em;\n}\n\n.bjce-nav {\n    display: flex;\n    align-items: stretch;\n}\n\n.bjce-nav > a {\n    position: relative;\n\n    min-width: 94px;\n    padding: 0 18px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    color: rgba(255,255,255,0.66);\n\n    font-size: 10px;\n    font-weight: 800;\n    letter-spacing: 0.18em;\n\n    transition:\n        color 0.25s ease,\n        background 0.25s ease;\n}\n\n.bjce-nav > a:not(.bjce-nav-contact)::after {\n    content: \"\";\n\n    position: absolute;\n    left: 18px;\n    right: 18px;\n    bottom: 17px;\n\n    height: 2px;\n\n    background: var(--bjce-red);\n\n    transform: scaleX(0);\n    transform-origin: left;\n\n    transition: transform 0.25s ease;\n}\n\n.bjce-nav > a:hover,\n.bjce-nav > a.is-active {\n    color: var(--bjce-white);\n}\n\n.bjce-nav > a:hover::after,\n.bjce-nav > a.is-active::after {\n    transform: scaleX(1);\n}\n\n.bjce-nav .bjce-nav-contact {\n    min-width: 150px;\n\n    gap: 17px;\n\n    background: var(--bjce-white);\n    color: var(--bjce-black);\n}\n\n.bjce-nav .bjce-nav-contact span {\n    color: var(--bjce-red);\n\n    font-size: 19px;\n\n    transition: transform 0.25s ease;\n}\n\n.bjce-nav .bjce-nav-contact:hover {\n    background: var(--bjce-offwhite);\n    color: var(--bjce-black);\n}\n\n.bjce-nav .bjce-nav-contact:hover span {\n    transform: translate(3px, -3px);\n}\n\n\n\/* ================================================================\n   05. MOBILE MENU\n================================================================ *\/\n\n.bjce-menu-button {\n    display: none;\n\n    width: 70px;\n\n    border: 0;\n    background: transparent;\n\n    align-items: center;\n    justify-content: center;\n    flex-direction: column;\n\n    gap: 8px;\n}\n\n.bjce-menu-button span {\n    display: block;\n\n    width: 27px;\n    height: 2px;\n\n    background: var(--bjce-white);\n\n    transition:\n        transform 0.25s ease,\n        opacity 0.25s ease;\n}\n\n.bjce-menu-button[aria-expanded=\"true\"] span:first-child {\n    transform: translateY(5px) rotate(45deg);\n}\n\n.bjce-menu-button[aria-expanded=\"true\"] span:last-child {\n    transform: translateY(-5px) rotate(-45deg);\n}\n\n.bjce-mobile-menu {\n    display: none;\n\n    background: var(--bjce-black-soft);\n\n    border-top: 1px solid rgba(255,255,255,0.08);\n}\n\n.bjce-mobile-menu.is-open {\n    display: grid;\n}\n\n.bjce-mobile-menu a {\n    padding: 20px 28px;\n\n    border-bottom: 1px solid rgba(255,255,255,0.08);\n\n    color: rgba(255,255,255,0.68);\n\n    font-size: 11px;\n    font-weight: 800;\n    letter-spacing: 0.18em;\n}\n\n.bjce-mobile-menu a.is-active {\n    color: var(--bjce-white);\n\n    border-left: 3px solid var(--bjce-red);\n}\n\n\n\/* ================================================================\n   06. HERO\n================================================================ *\/\n\n.bjce-hero {\n    position: relative;\n\n    min-height: 720px;\n\n    display: flex;\n    align-items: center;\n\n    overflow: hidden;\n\n    background:\n        linear-gradient(\n            110deg,\n            #050506 0%,\n            #0c0508 40%,\n            #39000f 73%,\n            #65001f 100%\n        );\n\n    color: var(--bjce-white);\n}\n\n.bjce-hero-grid {\n    position: absolute;\n    inset: 0;\n\n    opacity: 0.12;\n\n    background-image:\n        linear-gradient(\n            rgba(255,255,255,0.08) 1px,\n            transparent 1px\n        ),\n        linear-gradient(\n            90deg,\n            rgba(255,255,255,0.08) 1px,\n            transparent 1px\n        );\n\n    background-size: 80px 80px;\n\n    mask-image:\n        linear-gradient(\n            90deg,\n            transparent,\n            #000 40%,\n            #000\n        );\n}\n\n.bjce-hero-glow {\n    position: absolute;\n\n    width: 600px;\n    height: 600px;\n\n    right: -150px;\n    top: 80px;\n\n    border-radius: 50%;\n\n    background: rgba(214,40,40,0.13);\n\n    filter: blur(80px);\n}\n\n.bjce-hero-kanji {\n    position: absolute;\n\n    right: 3%;\n    bottom: -18%;\n\n    color: rgba(255,255,255,0.025);\n\n    font-family: serif;\n    font-size: clamp(280px, 34vw, 620px);\n    font-weight: 900;\n    line-height: 1;\n\n    white-space: nowrap;\n\n    transform: rotate(-7deg);\n\n    pointer-events: none;\n}\n\n.bjce-hero-inner {\n    position: relative;\n    z-index: 2;\n\n    padding: 90px 0 110px;\n}\n\n.bjce-eyebrow {\n    display: flex;\n    align-items: center;\n    gap: 17px;\n\n    margin-bottom: 34px;\n\n    color: rgba(255,255,255,0.48);\n\n    font-size: 10px;\n    font-weight: 800;\n    letter-spacing: 0.28em;\n}\n\n.bjce-eyebrow span:first-child {\n    color: var(--bjce-white);\n}\n\n.bjce-eyebrow i {\n    width: 40px;\n    height: 2px;\n\n    background: var(--bjce-red);\n}\n\n.bjce-hero-title {\n    margin: 0;\n\n    max-width: 1100px;\n\n    font-size: clamp(82px, 11.5vw, 178px);\n    font-weight: 900;\n    line-height: 0.75;\n    letter-spacing: -0.075em;\n\n    text-transform: uppercase;\n}\n\n.bjce-hero-title > span {\n    display: block;\n}\n\n.bjce-hero-title .bjce-outline {\n    color: transparent;\n\n    -webkit-text-stroke: 1px rgba(255,255,255,0.5);\n    text-stroke: 1px rgba(255,255,255,0.5);\n}\n\n.bjce-hero-bottom {\n    max-width: 790px;\n\n    margin-top: 74px;\n    margin-left: auto;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    gap: 60px;\n}\n\n.bjce-hero-bottom p {\n    max-width: 430px;\n\n    margin: 0;\n\n    color: rgba(255,255,255,0.68);\n\n    font-size: 16px;\n    line-height: 1.75;\n}\n\n.bjce-button {\n    min-width: 210px;\n    min-height: 62px;\n\n    padding: 0 25px;\n\n    display: inline-flex;\n    align-items: center;\n    justify-content: space-between;\n\n    font-size: 10px;\n    font-weight: 900;\n    letter-spacing: 0.18em;\n\n    transition:\n        transform 0.25s ease,\n        background 0.25s ease,\n        color 0.25s ease;\n}\n\n.bjce-button:hover {\n    transform: translateY(-3px);\n}\n\n.bjce-button span {\n    font-size: 18px;\n}\n\n.bjce-button-light {\n    background: var(--bjce-white);\n    color: var(--bjce-black);\n}\n\n.bjce-scroll {\n    position: absolute;\n\n    left: 31px;\n    bottom: 36px;\n\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n\n    gap: 13px;\n\n    color: rgba(255,255,255,0.4);\n\n    font-size: 8px;\n    font-weight: 800;\n    letter-spacing: 0.25em;\n\n    writing-mode: vertical-rl;\n}\n\n.bjce-scroll i {\n    width: 1px;\n    height: 44px;\n\n    background: linear-gradient(\n        var(--bjce-red),\n        rgba(255,255,255,0.1)\n    );\n}\n\n\n\/* ================================================================\n   07. SHARED SECTION LABEL\n================================================================ *\/\n\n.bjce-section-label {\n    display: flex;\n    align-items: center;\n    gap: 14px;\n\n    color: rgba(7,7,8,0.5);\n\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.23em;\n}\n\n.bjce-section-label > span:first-child {\n    color: var(--bjce-red);\n}\n\n.bjce-section-label i {\n    width: 34px;\n    height: 1px;\n\n    background: rgba(7,7,8,0.28);\n}\n\n.bjce-section-label-dark {\n    color: rgba(7,7,8,0.52);\n}\n\n.bjce-section-label-light {\n    color: rgba(255,255,255,0.5);\n}\n\n.bjce-section-label-light i {\n    background: rgba(255,255,255,0.25);\n}\n\n\n\/* ================================================================\n   08. INTRO\n================================================================ *\/\n\n.bjce-intro {\n    position: relative;\n\n    padding: 125px 0 145px;\n\n    overflow: hidden;\n\n    background: var(--bjce-offwhite);\n}\n\n.bjce-intro-kanji {\n    position: absolute;\n\n    left: -40px;\n    bottom: -105px;\n\n    color: rgba(7,7,8,0.035);\n\n    font-family: serif;\n    font-size: clamp(230px, 29vw, 470px);\n    font-weight: 900;\n    line-height: 1;\n\n    white-space: nowrap;\n\n    pointer-events: none;\n}\n\n.bjce-intro-grid {\n    position: relative;\n    z-index: 2;\n\n    display: grid;\n    grid-template-columns: 230px 1fr;\n\n    gap: 70px;\n}\n\n.bjce-intro-copy h2 {\n    margin: 0;\n\n    font-size: clamp(54px, 6.8vw, 98px);\n    font-weight: 900;\n    line-height: 0.88;\n    letter-spacing: -0.055em;\n}\n\n.bjce-intro-copy h2 em {\n    color: var(--bjce-burgundy);\n\n    font-style: normal;\n}\n\n.bjce-intro-text {\n    max-width: 760px;\n\n    margin-top: 55px;\n    margin-left: auto;\n\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n\n    gap: 55px;\n}\n\n.bjce-intro-text p {\n    margin: 0;\n\n    color: #555459;\n\n    font-size: 15px;\n    line-height: 1.8;\n}\n\n\n\/* ================================================================\n   09. CALENDAR\n================================================================ *\/\n\n.bjce-calendar {\n    padding: 130px 0 145px;\n\n    background: var(--bjce-white);\n}\n\n.bjce-calendar-heading {\n    display: grid;\n    grid-template-columns: 1fr auto;\n\n    align-items: end;\n\n    gap: 40px;\n\n    margin-bottom: 65px;\n}\n\n.bjce-calendar-heading h2 {\n    margin: 28px 0 0;\n\n    font-size: clamp(58px, 7.2vw, 106px);\n    font-weight: 900;\n    line-height: 0.84;\n    letter-spacing: -0.06em;\n}\n\n.bjce-calendar-heading h2 em {\n    color: var(--bjce-burgundy);\n\n    font-style: normal;\n}\n\n.bjce-calendar-summary {\n    margin-bottom: 8px;\n\n    display: flex;\n    align-items: center;\n\n    gap: 11px;\n\n    color: #656469;\n\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.18em;\n}\n\n.bjce-live-dot {\n    position: relative;\n\n    width: 8px;\n    height: 8px;\n\n    border-radius: 50%;\n\n    background: var(--bjce-red);\n}\n\n.bjce-live-dot::after {\n    content: \"\";\n\n    position: absolute;\n    inset: -4px;\n\n    border: 1px solid rgba(214,40,40,0.35);\n    border-radius: 50%;\n\n    animation: bjcePulseRing 2s infinite;\n}\n\n@keyframes bjcePulseRing {\n    0% {\n        transform: scale(0.7);\n        opacity: 1;\n    }\n\n    70% {\n        transform: scale(1.45);\n        opacity: 0;\n    }\n\n    100% {\n        opacity: 0;\n    }\n}\n\n\n\/* ================================================================\n   10. NEXT UP FEATURE\n================================================================ *\/\n\n.bjce-next {\n    position: relative;\n\n    margin-bottom: 52px;\n\n    overflow: hidden;\n\n    background:\n        linear-gradient(\n            115deg,\n            #080809 0%,\n            #11080b 52%,\n            #500017 100%\n        );\n\n    color: var(--bjce-white);\n\n    box-shadow: 0 28px 70px rgba(0,0,0,0.12);\n}\n\n.bjce-next::after {\n    content: \"\u6b21\";\n\n    position: absolute;\n\n    right: 12%;\n    bottom: -115px;\n\n    color: rgba(255,255,255,0.035);\n\n    font-family: serif;\n    font-size: 340px;\n    font-weight: 900;\n    line-height: 1;\n\n    pointer-events: none;\n}\n\n.bjce-next-top {\n    position: relative;\n    z-index: 2;\n\n    min-height: 67px;\n\n    padding: 0 34px;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    border-bottom: 1px solid rgba(255,255,255,0.11);\n}\n\n.bjce-next-label {\n    display: flex;\n    align-items: center;\n\n    gap: 11px;\n\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.22em;\n}\n\n.bjce-pulse {\n    position: relative;\n\n    width: 8px;\n    height: 8px;\n\n    border-radius: 50%;\n\n    background: var(--bjce-red-bright);\n}\n\n.bjce-pulse::after {\n    content: \"\";\n\n    position: absolute;\n    inset: -5px;\n\n    border: 1px solid rgba(239,54,54,0.5);\n    border-radius: 50%;\n\n    animation: bjcePulseRing 1.8s infinite;\n}\n\n.bjce-next-source {\n    color: rgba(255,255,255,0.37);\n\n    font-size: 8px;\n    font-weight: 800;\n    letter-spacing: 0.2em;\n}\n\n.bjce-next-grid {\n    position: relative;\n    z-index: 2;\n\n    min-height: 360px;\n\n    display: grid;\n    grid-template-columns: 230px 1fr 190px;\n\n    align-items: stretch;\n}\n\n.bjce-next-date {\n    padding: 48px 36px;\n\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n\n    border-right: 1px solid rgba(255,255,255,0.11);\n}\n\n.bjce-next-day {\n    font-size: 105px;\n    font-weight: 900;\n    line-height: 0.77;\n    letter-spacing: -0.08em;\n}\n\n.bjce-next-month {\n    margin-top: 23px;\n\n    color: var(--bjce-red-bright);\n\n    font-size: 20px;\n    font-weight: 900;\n    letter-spacing: 0.2em;\n}\n\n.bjce-next-year {\n    margin-top: 7px;\n\n    color: rgba(255,255,255,0.42);\n\n    font-size: 10px;\n    font-weight: 800;\n    letter-spacing: 0.22em;\n}\n\n.bjce-next-content {\n    padding: 53px 54px;\n\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n}\n\n.bjce-event-category {\n    align-self: flex-start;\n\n    margin-bottom: 24px;\n    padding: 8px 11px;\n\n    border: 1px solid rgba(255,255,255,0.2);\n\n    color: rgba(255,255,255,0.68);\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.2em;\n}\n\n.bjce-next-content h3 {\n    max-width: 700px;\n\n    margin: 0;\n\n    font-size: clamp(32px, 4vw, 58px);\n    font-weight: 900;\n    line-height: 0.94;\n    letter-spacing: -0.045em;\n}\n\n.bjce-next-meta {\n    margin-top: 24px;\n\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n\n    gap: 9px;\n\n    color: rgba(255,255,255,0.48);\n\n    font-size: 9px;\n    font-weight: 800;\n    letter-spacing: 0.14em;\n}\n\n.bjce-meta-divider {\n    color: var(--bjce-red);\n}\n\n.bjce-next-content p {\n    max-width: 620px;\n\n    margin: 25px 0 0;\n\n    color: rgba(255,255,255,0.59);\n\n    font-size: 14px;\n    line-height: 1.75;\n}\n\n.bjce-next-action {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    border-left: 1px solid rgba(255,255,255,0.11);\n}\n\n.bjce-round-link {\n    width: 125px;\n    height: 125px;\n\n    padding: 26px;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    border: 1px solid rgba(255,255,255,0.34);\n    border-radius: 50%;\n\n    transition:\n        background 0.3s ease,\n        border-color 0.3s ease,\n        transform 0.3s ease;\n}\n\n.bjce-round-link span {\n    font-size: 8px;\n    font-weight: 900;\n    line-height: 1.45;\n    letter-spacing: 0.16em;\n}\n\n.bjce-round-link b {\n    color: var(--bjce-red-bright);\n\n    font-size: 21px;\n    font-weight: 400;\n}\n\n.bjce-round-link:hover {\n    transform: rotate(-5deg) scale(1.04);\n\n    background: var(--bjce-white);\n    border-color: var(--bjce-white);\n    color: var(--bjce-black);\n}\n\n\n\/* ================================================================\n   11. SEARCH \/ YEAR TOOLS\n================================================================ *\/\n\n.bjce-tools {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) auto;\n\n    gap: 20px;\n\n    margin-bottom: 18px;\n}\n\n.bjce-search {\n    position: relative;\n\n    min-height: 72px;\n\n    display: flex;\n    align-items: center;\n\n    border: 1px solid var(--bjce-border);\n\n    background: var(--bjce-white);\n}\n\n.bjce-search-icon {\n    position: relative;\n\n    width: 18px;\n    height: 18px;\n\n    margin-left: 25px;\n\n    border: 2px solid var(--bjce-black);\n    border-radius: 50%;\n\n    flex: 0 0 auto;\n}\n\n.bjce-search-icon::after {\n    content: \"\";\n\n    position: absolute;\n\n    width: 7px;\n    height: 2px;\n\n    right: -5px;\n    bottom: -2px;\n\n    background: var(--bjce-black);\n\n    transform: rotate(45deg);\n}\n\n.bjce-search input {\n    width: 100%;\n    height: 70px;\n\n    padding: 0 48px 0 21px;\n\n    border: 0;\n    outline: 0;\n\n    background: transparent;\n    color: var(--bjce-black);\n\n    font-size: 13px;\n}\n\n.bjce-search input::placeholder {\n    color: #8b898d;\n}\n\n.bjce-search:focus-within {\n    border-color: var(--bjce-black);\n\n    box-shadow: inset 0 -2px 0 var(--bjce-red);\n}\n\n.bjce-search-clear {\n    position: absolute;\n\n    right: 17px;\n    top: 50%;\n\n    width: 32px;\n    height: 32px;\n\n    transform: translateY(-50%);\n\n    border: 0;\n    background: transparent;\n\n    color: #99979b;\n\n    font-size: 23px;\n    font-weight: 300;\n}\n\n.bjce-search-clear:hover {\n    color: var(--bjce-red);\n}\n\n.bjce-year-jump {\n    min-height: 72px;\n\n    display: flex;\n    align-items: stretch;\n\n    border: 1px solid var(--bjce-border);\n}\n\n.bjce-year-jump > span {\n    padding: 0 21px;\n\n    display: flex;\n    align-items: center;\n\n    border-right: 1px solid var(--bjce-border);\n\n    color: #77757a;\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.17em;\n}\n\n.bjce-year-button {\n    min-width: 76px;\n\n    padding: 0 16px;\n\n    border: 0;\n    border-right: 1px solid var(--bjce-border);\n\n    background: var(--bjce-white);\n    color: #77757a;\n\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.13em;\n\n    transition:\n        background 0.2s ease,\n        color 0.2s ease;\n}\n\n.bjce-year-button:last-child {\n    border-right: 0;\n}\n\n.bjce-year-button:hover {\n    background: var(--bjce-offwhite);\n    color: var(--bjce-black);\n}\n\n.bjce-year-button.is-active {\n    background: var(--bjce-black);\n    color: var(--bjce-white);\n}\n\n\n\/* ================================================================\n   12. CATEGORY FILTERS\n================================================================ *\/\n\n.bjce-filter-bar {\n    display: grid;\n    grid-template-columns: repeat(5, 1fr);\n\n    margin-bottom: 0;\n\n    border: 1px solid var(--bjce-border);\n    border-bottom: 0;\n}\n\n.bjce-filter {\n    position: relative;\n\n    min-height: 82px;\n\n    padding: 0 20px;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    gap: 12px;\n\n    border: 0;\n    border-right: 1px solid var(--bjce-border);\n\n    background: var(--bjce-white);\n    color: #77757a;\n\n    transition:\n        background 0.25s ease,\n        color 0.25s ease;\n}\n\n.bjce-filter:last-child {\n    border-right: 0;\n}\n\n.bjce-filter span {\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.14em;\n}\n\n.bjce-filter small {\n    min-width: 25px;\n    height: 25px;\n\n    padding: 0 7px;\n\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n\n    border-radius: 20px;\n\n    background: var(--bjce-offwhite);\n\n    color: #77757a;\n\n    font-size: 8px;\n    font-weight: 900;\n}\n\n.bjce-filter::after {\n    content: \"\";\n\n    position: absolute;\n\n    left: 0;\n    right: 0;\n    bottom: 0;\n\n    height: 3px;\n\n    background: var(--bjce-red);\n\n    transform: scaleX(0);\n\n    transition: transform 0.25s ease;\n}\n\n.bjce-filter:hover {\n    color: var(--bjce-black);\n}\n\n.bjce-filter.is-active {\n    background: var(--bjce-black);\n    color: var(--bjce-white);\n}\n\n.bjce-filter.is-active small {\n    background: rgba(255,255,255,0.12);\n    color: var(--bjce-white);\n}\n\n.bjce-filter.is-active::after {\n    transform: scaleX(1);\n}\n\n\n\/* ================================================================\n   13. RESULTS BAR\n================================================================ *\/\n\n.bjce-results-bar {\n    min-height: 56px;\n\n    padding: 0 18px;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    border: 1px solid var(--bjce-border);\n\n    background: var(--bjce-offwhite);\n}\n\n.bjce-results-bar > div {\n    display: flex;\n    align-items: center;\n\n    gap: 7px;\n\n    color: #77757a;\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.16em;\n}\n\n.bjce-results-bar strong {\n    color: var(--bjce-red);\n\n    font-size: 10px;\n}\n\n.bjce-results-bar button {\n    border: 0;\n    background: transparent;\n\n    color: var(--bjce-black);\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.14em;\n}\n\n.bjce-results-bar button:hover {\n    color: var(--bjce-red);\n}\n\n\n\/* ================================================================\n   14. EVENT TIMELINE\n   Elements below are created by JavaScript.\n================================================================ *\/\n\n.bjce-timeline {\n    margin-top: 70px;\n}\n\n.bjce-month {\n    margin-bottom: 88px;\n}\n\n.bjce-month:last-child {\n    margin-bottom: 25px;\n}\n\n.bjce-month-heading {\n    margin-bottom: 0;\n\n    display: grid;\n    grid-template-columns: 180px 1fr auto;\n\n    align-items: center;\n\n    gap: 26px;\n}\n\n.bjce-month-heading h3 {\n    margin: 0;\n\n    font-size: 31px;\n    font-weight: 900;\n    letter-spacing: -0.035em;\n}\n\n.bjce-month-heading h3 span {\n    color: var(--bjce-burgundy);\n}\n\n.bjce-month-line {\n    height: 1px;\n\n    background: var(--bjce-border);\n}\n\n.bjce-month-count {\n    color: #8a888d;\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.16em;\n}\n\n.bjce-event-row {\n    position: relative;\n\n    display: grid;\n    grid-template-columns: 180px minmax(0, 1fr) 170px;\n\n    min-height: 205px;\n\n    border-bottom: 1px solid var(--bjce-border);\n\n    transition:\n        background 0.25s ease,\n        transform 0.25s ease;\n}\n\n.bjce-event-row:first-of-type {\n    margin-top: 26px;\n\n    border-top: 1px solid var(--bjce-border);\n}\n\n.bjce-event-row:hover {\n    background: #faf9f7;\n}\n\n.bjce-event-date {\n    padding: 35px 32px 32px 0;\n\n    display: flex;\n    align-items: flex-start;\n\n    border-right: 1px solid var(--bjce-border);\n}\n\n.bjce-event-date-day {\n    min-width: 75px;\n\n    font-size: 65px;\n    font-weight: 900;\n    line-height: 0.82;\n    letter-spacing: -0.07em;\n}\n\n.bjce-event-date-copy {\n    padding-top: 3px;\n\n    display: flex;\n    flex-direction: column;\n\n    gap: 4px;\n}\n\n.bjce-event-date-copy strong {\n    color: var(--bjce-red);\n\n    font-size: 10px;\n    font-weight: 900;\n    letter-spacing: 0.15em;\n}\n\n.bjce-event-date-copy span {\n    color: #77757a;\n\n    font-size: 9px;\n    font-weight: 800;\n    letter-spacing: 0.12em;\n}\n\n.bjce-event-main {\n    padding: 34px 42px;\n}\n\n.bjce-event-tag {\n    margin-bottom: 14px;\n\n    display: inline-flex;\n    align-items: center;\n\n    gap: 8px;\n\n    color: #77757a;\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.16em;\n}\n\n.bjce-event-tag::before {\n    content: \"\";\n\n    width: 18px;\n    height: 2px;\n\n    background: var(--bjce-red);\n}\n\n.bjce-event-main h4 {\n    max-width: 760px;\n\n    margin: 0;\n\n    color: var(--bjce-black);\n\n    font-size: clamp(22px, 2.5vw, 34px);\n    font-weight: 900;\n    line-height: 1.05;\n    letter-spacing: -0.035em;\n}\n\n.bjce-event-location {\n    margin-top: 15px;\n\n    display: flex;\n    align-items: center;\n\n    gap: 9px;\n\n    color: #77757a;\n\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: 0.04em;\n}\n\n.bjce-event-location::before {\n    content: \"\";\n\n    width: 7px;\n    height: 7px;\n\n    border: 2px solid var(--bjce-burgundy);\n    border-radius: 50%;\n}\n\n.bjce-event-description {\n    max-width: 680px;\n\n    margin: 17px 0 0;\n\n    color: #666469;\n\n    font-size: 13px;\n    line-height: 1.65;\n}\n\n.bjce-event-action {\n    display: flex;\n    align-items: center;\n    justify-content: flex-end;\n\n    padding-left: 25px;\n}\n\n.bjce-event-link {\n    width: 126px;\n    height: 126px;\n\n    padding: 25px;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    border: 1px solid var(--bjce-border);\n    border-radius: 50%;\n\n    color: var(--bjce-black);\n\n    transition:\n        background 0.3s ease,\n        color 0.3s ease,\n        border-color 0.3s ease,\n        transform 0.3s ease;\n}\n\n.bjce-event-link span {\n    font-size: 8px;\n    font-weight: 900;\n    line-height: 1.45;\n    letter-spacing: 0.15em;\n}\n\n.bjce-event-link b {\n    color: var(--bjce-red);\n\n    font-size: 20px;\n    font-weight: 400;\n}\n\n.bjce-event-link:hover {\n    transform: rotate(-5deg);\n\n    background: var(--bjce-black);\n    border-color: var(--bjce-black);\n    color: var(--bjce-white);\n}\n\n.bjce-event-link:hover b {\n    color: var(--bjce-red-bright);\n}\n\n\n\/* ================================================================\n   15. CATEGORY ACCENTS\n================================================================ *\/\n\n.bjce-event-row[data-category=\"competition\"] .bjce-event-tag::before {\n    background: var(--bjce-red);\n}\n\n.bjce-event-row[data-category=\"course\"] .bjce-event-tag::before {\n    background: var(--bjce-gold);\n}\n\n.bjce-event-row[data-category=\"grading\"] .bjce-event-tag::before {\n    background: var(--bjce-burgundy);\n}\n\n.bjce-event-row[data-category=\"other\"] .bjce-event-tag::before {\n    background: #74747a;\n}\n\n\n\/* ================================================================\n   16. EMPTY RESULTS\n================================================================ *\/\n\n.bjce-empty {\n    display: none;\n\n    padding: 100px 30px;\n\n    text-align: center;\n\n    border-bottom: 1px solid var(--bjce-border);\n}\n\n.bjce-empty.is-visible {\n    display: block;\n}\n\n.bjce-empty-mark {\n    margin-bottom: 18px;\n\n    color: rgba(101,0,31,0.11);\n\n    font-family: serif;\n    font-size: 95px;\n    font-weight: 900;\n    line-height: 1;\n}\n\n.bjce-empty h3 {\n    margin: 0;\n\n    font-size: 34px;\n    font-weight: 900;\n    letter-spacing: -0.04em;\n}\n\n.bjce-empty p {\n    margin: 12px 0 25px;\n\n    color: #77757a;\n\n    font-size: 13px;\n}\n\n.bjce-empty button {\n    min-height: 48px;\n\n    padding: 0 22px;\n\n    border: 1px solid var(--bjce-black);\n\n    background: var(--bjce-black);\n    color: var(--bjce-white);\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.16em;\n}\n\n\n\/* ================================================================\n   17. DATA STATUS\n================================================================ *\/\n\n.bjce-data-status {\n    min-height: 90px;\n\n    margin-top: 58px;\n    padding: 20px 27px;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    gap: 30px;\n\n    border-top: 1px solid var(--bjce-border);\n    border-bottom: 1px solid var(--bjce-border);\n}\n\n.bjce-data-status-left {\n    display: flex;\n    align-items: center;\n\n    gap: 15px;\n}\n\n.bjce-status-dot {\n    width: 10px;\n    height: 10px;\n\n    border-radius: 50%;\n\n    background: var(--bjce-red);\n\n    box-shadow: 0 0 0 5px rgba(214,40,40,0.09);\n}\n\n.bjce-data-status-left > div {\n    display: flex;\n    flex-direction: column;\n\n    gap: 5px;\n}\n\n.bjce-data-status-left strong {\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.16em;\n}\n\n.bjce-data-status-left small {\n    color: #77757a;\n\n    font-size: 10px;\n}\n\n.bjce-data-status > a {\n    color: var(--bjce-black);\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.15em;\n\n    transition: color 0.2s ease;\n}\n\n.bjce-data-status > a:hover {\n    color: var(--bjce-red);\n}\n\n\n\/* ================================================================\n   18. PATHWAYS\n================================================================ *\/\n\n.bjce-pathways {\n    padding: 135px 0 150px;\n\n    background: var(--bjce-offwhite);\n}\n\n.bjce-pathway-heading {\n    margin-top: 40px;\n\n    display: grid;\n    grid-template-columns: 1fr 390px;\n\n    align-items: end;\n\n    gap: 80px;\n}\n\n.bjce-pathway-heading h2 {\n    margin: 0;\n\n    font-size: clamp(54px, 6.5vw, 94px);\n    font-weight: 900;\n    line-height: 0.87;\n    letter-spacing: -0.055em;\n}\n\n.bjce-pathway-heading h2 em {\n    color: var(--bjce-burgundy);\n\n    font-style: normal;\n}\n\n.bjce-pathway-heading p {\n    margin: 0 0 7px;\n\n    color: #5f5d62;\n\n    font-size: 14px;\n    line-height: 1.8;\n}\n\n.bjce-pathway-grid {\n    margin-top: 95px;\n\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n\n    border-top: 1px solid rgba(7,7,8,0.17);\n}\n\n.bjce-pathway-grid article {\n    position: relative;\n\n    min-height: 320px;\n\n    padding: 35px 48px 20px 0;\n\n    border-right: 1px solid rgba(7,7,8,0.17);\n}\n\n.bjce-pathway-grid article + article {\n    padding-left: 48px;\n}\n\n.bjce-pathway-grid article:last-child {\n    padding-right: 0;\n    border-right: 0;\n}\n\n.bjce-pathway-number {\n    color: var(--bjce-red);\n\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.18em;\n}\n\n.bjce-pathway-line {\n    width: 30px;\n    height: 2px;\n\n    margin: 55px 0 25px;\n\n    background: var(--bjce-red);\n}\n\n.bjce-pathway-grid h3 {\n    margin: 0;\n\n    font-size: clamp(34px, 3.4vw, 49px);\n    font-weight: 900;\n    letter-spacing: -0.045em;\n}\n\n.bjce-pathway-grid p {\n    max-width: 290px;\n\n    margin: 22px 0 0;\n\n    color: #646267;\n\n    font-size: 13px;\n    line-height: 1.75;\n}\n\n\n\/* ================================================================\n   19. OFFICIAL BJC SOURCE\n================================================================ *\/\n\n.bjce-source {\n    position: relative;\n\n    padding: 105px 0;\n\n    overflow: hidden;\n\n    background: var(--bjce-white);\n}\n\n.bjce-source-kanji {\n    position: absolute;\n\n    right: -15px;\n    top: -95px;\n\n    color: rgba(7,7,8,0.035);\n\n    font-family: serif;\n    font-size: 350px;\n    font-weight: 900;\n    line-height: 1;\n\n    pointer-events: none;\n}\n\n.bjce-source-grid {\n    position: relative;\n    z-index: 2;\n\n    display: grid;\n    grid-template-columns: 190px 1fr 180px;\n\n    align-items: center;\n\n    gap: 65px;\n}\n\n.bjce-source-label {\n    color: var(--bjce-red);\n\n    font-size: 9px;\n    font-weight: 900;\n    letter-spacing: 0.2em;\n}\n\n.bjce-source-copy h2 {\n    margin: 0;\n\n    font-size: clamp(43px, 5vw, 70px);\n    font-weight: 900;\n    line-height: 0.88;\n    letter-spacing: -0.05em;\n}\n\n.bjce-source-copy h2 em {\n    color: var(--bjce-burgundy);\n\n    font-style: normal;\n}\n\n.bjce-source-copy p {\n    max-width: 600px;\n\n    margin: 27px 0 0;\n\n    color: #666469;\n\n    font-size: 13px;\n    line-height: 1.75;\n}\n\n.bjce-source-action {\n    display: flex;\n    justify-content: flex-end;\n}\n\n.bjce-source-action a {\n    width: 145px;\n    height: 145px;\n\n    padding: 30px;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    border: 1px solid var(--bjce-border);\n    border-radius: 50%;\n\n    transition:\n        background 0.3s ease,\n        color 0.3s ease,\n        transform 0.3s ease;\n}\n\n.bjce-source-action a span {\n    font-size: 8px;\n    font-weight: 900;\n    line-height: 1.5;\n    letter-spacing: 0.16em;\n}\n\n.bjce-source-action a b {\n    color: var(--bjce-red);\n\n    font-size: 22px;\n    font-weight: 400;\n}\n\n.bjce-source-action a:hover {\n    transform: rotate(-5deg);\n\n    background: var(--bjce-black);\n    color: var(--bjce-white);\n}\n\n\n\/* ================================================================\n   20. CTA\n================================================================ *\/\n\n.bjce-cta {\n    position: relative;\n\n    min-height: 650px;\n\n    padding: 120px 0;\n\n    overflow: hidden;\n\n    background:\n        linear-gradient(\n            120deg,\n            #5a001a,\n            #730021 58%,\n            #35000f\n        );\n\n    color: var(--bjce-white);\n}\n\n.bjce-cta-grid {\n    position: absolute;\n    inset: 0;\n\n    opacity: 0.11;\n\n    background-image:\n        linear-gradient(\n            rgba(255,255,255,0.12) 1px,\n            transparent 1px\n        ),\n        linear-gradient(\n            90deg,\n            rgba(255,255,255,0.12) 1px,\n            transparent 1px\n        );\n\n    background-size: 78px 78px;\n}\n\n.bjce-cta-kanji {\n    position: absolute;\n\n    right: -25px;\n    bottom: -135px;\n\n    color: rgba(255,255,255,0.055);\n\n    font-family: serif;\n    font-size: clamp(300px, 34vw, 570px);\n    font-weight: 900;\n    line-height: 1;\n\n    white-space: nowrap;\n\n    pointer-events: none;\n}\n\n.bjce-cta-inner {\n    position: relative;\n    z-index: 2;\n}\n\n.bjce-cta h2 {\n    margin: 45px 0 0;\n\n    font-size: clamp(78px, 10vw, 145px);\n    font-weight: 900;\n    line-height: 0.72;\n    letter-spacing: -0.07em;\n}\n\n.bjce-cta h2 em {\n    color: transparent;\n\n    font-style: normal;\n\n    -webkit-text-stroke: 1px rgba(255,255,255,0.5);\n    text-stroke: 1px rgba(255,255,255,0.5);\n}\n\n.bjce-cta-bottom {\n    max-width: 730px;\n\n    margin-top: 75px;\n    margin-left: auto;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    gap: 55px;\n}\n\n.bjce-cta-bottom p {\n    max-width: 400px;\n\n    margin: 0;\n\n    color: rgba(255,255,255,0.67);\n\n    font-size: 14px;\n    line-height: 1.75;\n}\n\n.bjce-button-dark {\n    background: var(--bjce-black);\n    color: var(--bjce-white);\n}\n\n\n\/* ================================================================\n   21. FOOTER\n================================================================ *\/\n\n.bjce-footer {\n    padding: 85px 0 28px;\n\n    background: var(--bjce-black);\n    color: var(--bjce-white);\n}\n\n.bjce-footer-top {\n    padding-bottom: 60px;\n\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n\n    border-bottom: 1px solid rgba(255,255,255,0.1);\n}\n\n.bjce-footer-brand {\n    display: flex;\n    align-items: center;\n\n    gap: 15px;\n}\n\n.bjce-footer-brand img {\n    width: 44px;\n    height: 62px;\n\n    object-fit: contain;\n\n    filter:\n        brightness(0)\n        saturate(100%)\n        invert(20%)\n        sepia(100%)\n        saturate(5455%)\n        hue-rotate(352deg)\n        brightness(92%)\n        contrast(92%);\n}\n\n.bjce-footer-brand > span {\n    display: flex;\n    flex-direction: column;\n}\n\n.bjce-footer-brand strong {\n    font-size: 24px;\n    font-weight: 900;\n    letter-spacing: 0.12em;\n}\n\n.bjce-footer-brand small {\n    margin-top: 8px;\n\n    color: var(--bjce-gold);\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.4em;\n}\n\n.bjce-footer-message {\n    text-align: right;\n\n    font-size: 34px;\n    font-weight: 900;\n    line-height: 0.9;\n    letter-spacing: -0.04em;\n}\n\n.bjce-footer-message em {\n    color: var(--bjce-red);\n\n    font-style: normal;\n}\n\n.bjce-footer-grid {\n    padding: 62px 0 72px;\n\n    display: grid;\n    grid-template-columns: 1fr 1fr 1.2fr;\n\n    gap: 70px;\n}\n\n.bjce-footer-column {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n\n    gap: 13px;\n}\n\n.bjce-footer-column > span {\n    margin-bottom: 9px;\n\n    color: rgba(255,255,255,0.35);\n\n    font-size: 8px;\n    font-weight: 900;\n    letter-spacing: 0.2em;\n}\n\n.bjce-footer-column a {\n    color: rgba(255,255,255,0.7);\n\n    font-size: 12px;\n\n    transition: color 0.2s ease;\n}\n\n.bjce-footer-column a:hover {\n    color: var(--bjce-white);\n}\n\n.bjce-footer-location p {\n    margin: 0;\n\n    color: rgba(255,255,255,0.6);\n\n    font-size: 12px;\n    line-height: 1.7;\n}\n\n.bjce-footer-bottom {\n    padding-top: 26px;\n\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    border-top: 1px solid rgba(255,255,255,0.1);\n\n    color: rgba(255,255,255,0.32);\n\n    font-size: 8px;\n    font-weight: 800;\n    letter-spacing: 0.15em;\n}\n\n\n\/* ================================================================\n   22. TABLET\n================================================================ *\/\n\n@media (max-width: 1100px) {\n\n    .bjce-container {\n        width: min(calc(100% - 60px), var(--bjce-max));\n    }\n\n    .bjce-header-inner {\n        width: calc(100% - 34px);\n    }\n\n    .bjce-nav > a {\n        min-width: auto;\n        padding: 0 11px;\n\n        font-size: 8px;\n    }\n\n    .bjce-nav > a:not(.bjce-nav-contact)::after {\n        left: 11px;\n        right: 11px;\n    }\n\n    .bjce-nav .bjce-nav-contact {\n        min-width: 118px;\n    }\n\n    .bjce-brand {\n        min-width: 205px;\n    }\n\n    .bjce-next-grid {\n        grid-template-columns: 190px 1fr 150px;\n    }\n\n    .bjce-next-day {\n        font-size: 84px;\n    }\n\n    .bjce-next-content {\n        padding: 45px 38px;\n    }\n\n    .bjce-round-link {\n        width: 105px;\n        height: 105px;\n\n        padding: 21px;\n    }\n\n    .bjce-event-row {\n        grid-template-columns: 160px minmax(0,1fr) 145px;\n    }\n\n    .bjce-event-date-day {\n        min-width: 66px;\n\n        font-size: 56px;\n    }\n\n    .bjce-event-main {\n        padding-left: 32px;\n        padding-right: 32px;\n    }\n\n    .bjce-event-link {\n        width: 110px;\n        height: 110px;\n\n        padding: 21px;\n    }\n\n}\n\n\n\/* ================================================================\n   23. MOBILE NAV BREAKPOINT\n================================================================ *\/\n\n@media (max-width: 900px) {\n\n    .bjce-nav {\n        display: none;\n    }\n\n    .bjce-menu-button {\n        display: flex;\n    }\n\n    .bjce-header-inner {\n        min-height: 80px;\n    }\n\n    .bjce-intro-grid {\n        grid-template-columns: 1fr;\n\n        gap: 42px;\n    }\n\n    .bjce-calendar-heading {\n        grid-template-columns: 1fr;\n\n        gap: 25px;\n    }\n\n    .bjce-calendar-summary {\n        margin-bottom: 0;\n    }\n\n    .bjce-next-grid {\n        grid-template-columns: 170px 1fr;\n    }\n\n    .bjce-next-action {\n        grid-column: 1 \/ -1;\n\n        min-height: 125px;\n\n        justify-content: flex-end;\n\n        padding: 20px 30px;\n\n        border-left: 0;\n        border-top: 1px solid rgba(255,255,255,0.11);\n    }\n\n    .bjce-tools {\n        grid-template-columns: 1fr;\n    }\n\n    .bjce-year-jump {\n        width: 100%;\n    }\n\n    .bjce-year-jump > span,\n    .bjce-year-button {\n        flex: 1;\n    }\n\n    .bjce-filter-bar {\n        grid-template-columns: repeat(5, minmax(140px, 1fr));\n\n        overflow-x: auto;\n    }\n\n    .bjce-event-row {\n        grid-template-columns: 150px 1fr;\n    }\n\n    .bjce-event-action {\n        grid-column: 1 \/ -1;\n\n        min-height: 90px;\n\n        padding: 18px 0;\n\n        justify-content: flex-end;\n    }\n\n    .bjce-event-link {\n        width: auto;\n        height: 48px;\n\n        padding: 0 19px;\n\n        gap: 25px;\n\n        border-radius: 0;\n    }\n\n    .bjce-pathway-heading {\n        grid-template-columns: 1fr;\n\n        gap: 35px;\n    }\n\n    .bjce-source-grid {\n        grid-template-columns: 150px 1fr;\n\n        gap: 45px;\n    }\n\n    .bjce-source-action {\n        grid-column: 2;\n\n        justify-content: flex-start;\n    }\n\n}\n\n\n\/* ================================================================\n   24. PHONE\n================================================================ *\/\n\n@media (max-width: 680px) {\n\n    .bjce-container {\n        width: calc(100% - 38px);\n    }\n\n    .bjce-header-inner {\n        width: calc(100% - 22px);\n        min-height: 74px;\n    }\n\n    .bjce-brand {\n        min-width: auto;\n\n        gap: 10px;\n    }\n\n    .bjce-brand-mark {\n        width: 30px;\n        height: 45px;\n    }\n\n    .bjce-brand-copy strong {\n        font-size: 17px;\n    }\n\n    .bjce-brand-copy small {\n        margin-top: 6px;\n\n        font-size: 6px;\n    }\n\n    .bjce-menu-button {\n        width: 55px;\n    }\n\n\n    \/* HERO *\/\n\n    .bjce-hero {\n        min-height: 630px;\n    }\n\n    .bjce-hero-inner {\n        padding: 90px 0 100px;\n    }\n\n    .bjce-eyebrow {\n        gap: 10px;\n\n        margin-bottom: 30px;\n\n        font-size: 7px;\n        letter-spacing: 0.2em;\n    }\n\n    .bjce-eyebrow i {\n        width: 24px;\n    }\n\n    .bjce-hero-title {\n        font-size: clamp(62px, 22vw, 96px);\n        line-height: 0.77;\n    }\n\n    .bjce-hero-bottom {\n        margin-top: 55px;\n        margin-left: 0;\n\n        display: block;\n    }\n\n    .bjce-hero-bottom p {\n        font-size: 14px;\n    }\n\n    .bjce-hero-bottom .bjce-button {\n        margin-top: 30px;\n    }\n\n    .bjce-scroll {\n        display: none;\n    }\n\n\n    \/* INTRO *\/\n\n    .bjce-intro {\n        padding: 85px 0 95px;\n    }\n\n    .bjce-intro-copy h2 {\n        font-size: clamp(48px, 15vw, 72px);\n    }\n\n    .bjce-intro-text {\n        margin-top: 40px;\n        margin-left: 0;\n\n        grid-template-columns: 1fr;\n\n        gap: 22px;\n    }\n\n\n    \/* CALENDAR *\/\n\n    .bjce-calendar {\n        padding: 90px 0 100px;\n    }\n\n    .bjce-calendar-heading {\n        margin-bottom: 45px;\n    }\n\n    .bjce-calendar-heading h2 {\n        font-size: clamp(52px, 16vw, 76px);\n    }\n\n\n    \/* NEXT *\/\n\n    .bjce-next-top {\n        padding: 0 20px;\n    }\n\n    .bjce-next-source {\n        display: none;\n    }\n\n    .bjce-next-grid {\n        display: block;\n    }\n\n    .bjce-next-date {\n        padding: 32px 24px;\n\n        display: grid;\n        grid-template-columns: auto 1fr;\n        grid-template-rows: auto auto;\n\n        align-items: end;\n\n        column-gap: 18px;\n\n        border-right: 0;\n        border-bottom: 1px solid rgba(255,255,255,0.11);\n    }\n\n    .bjce-next-day {\n        grid-row: 1 \/ 3;\n\n        font-size: 88px;\n    }\n\n    .bjce-next-month {\n        margin: 0;\n\n        align-self: end;\n    }\n\n    .bjce-next-year {\n        margin: 5px 0 8px;\n    }\n\n    .bjce-next-content {\n        padding: 37px 24px;\n    }\n\n    .bjce-next-content h3 {\n        font-size: 34px;\n    }\n\n    .bjce-next-action {\n        min-height: auto;\n\n        padding: 25px 24px;\n\n        justify-content: flex-start;\n    }\n\n    .bjce-round-link {\n        width: 100%;\n        height: 54px;\n\n        padding: 0 20px;\n\n        border-radius: 0;\n    }\n\n    .bjce-round-link span br {\n        display: none;\n    }\n\n\n    \/* SEARCH *\/\n\n    .bjce-search {\n        min-height: 64px;\n    }\n\n    .bjce-search input {\n        height: 62px;\n\n        font-size: 12px;\n    }\n\n    .bjce-year-jump {\n        min-height: 60px;\n    }\n\n    .bjce-year-jump > span {\n        display: none;\n    }\n\n    .bjce-year-button {\n        min-width: 0;\n    }\n\n\n    \/* FILTERS *\/\n\n    .bjce-filter-bar {\n        grid-template-columns: repeat(5, 150px);\n    }\n\n    .bjce-filter {\n        min-height: 70px;\n    }\n\n\n    \/* TIMELINE *\/\n\n    .bjce-timeline {\n        margin-top: 55px;\n    }\n\n    .bjce-month {\n        margin-bottom: 68px;\n    }\n\n    .bjce-month-heading {\n        grid-template-columns: auto 1fr;\n\n        gap: 18px;\n    }\n\n    .bjce-month-heading h3 {\n        font-size: 25px;\n    }\n\n    .bjce-month-count {\n        grid-column: 1 \/ -1;\n\n        margin-top: -7px;\n    }\n\n    .bjce-event-row {\n        display: block;\n\n        min-height: 0;\n    }\n\n    .bjce-event-date {\n        padding: 26px 0 18px;\n\n        border-right: 0;\n    }\n\n    .bjce-event-date-day {\n        min-width: 66px;\n\n        font-size: 56px;\n    }\n\n    .bjce-event-main {\n        padding: 0 0 28px;\n    }\n\n    .bjce-event-main h4 {\n        font-size: 26px;\n    }\n\n    .bjce-event-action {\n        min-height: auto;\n\n        padding: 0 0 30px;\n\n        justify-content: flex-start;\n    }\n\n    .bjce-event-link {\n        width: 100%;\n\n        justify-content: space-between;\n    }\n\n\n    \/* STATUS *\/\n\n    .bjce-data-status {\n        padding: 24px 0;\n\n        display: block;\n    }\n\n    .bjce-data-status > a {\n        display: inline-block;\n\n        margin-top: 22px;\n    }\n\n\n    \/* PATHWAYS *\/\n\n    .bjce-pathways {\n        padding: 90px 0 100px;\n    }\n\n    .bjce-pathway-heading h2 {\n        font-size: clamp(48px, 14vw, 68px);\n    }\n\n    .bjce-pathway-grid {\n        margin-top: 65px;\n\n        grid-template-columns: 1fr;\n    }\n\n    .bjce-pathway-grid article,\n    .bjce-pathway-grid article + article {\n        min-height: 0;\n\n        padding: 32px 0 42px;\n\n        border-right: 0;\n        border-bottom: 1px solid rgba(7,7,8,0.17);\n    }\n\n    .bjce-pathway-grid article:last-child {\n        border-bottom: 0;\n    }\n\n    .bjce-pathway-line {\n        margin: 32px 0 20px;\n    }\n\n\n    \/* SOURCE *\/\n\n    .bjce-source {\n        padding: 85px 0;\n    }\n\n    .bjce-source-grid {\n        display: block;\n    }\n\n    .bjce-source-copy {\n        margin-top: 35px;\n    }\n\n    .bjce-source-copy h2 {\n        font-size: 50px;\n    }\n\n    .bjce-source-action {\n        margin-top: 35px;\n\n        justify-content: flex-start;\n    }\n\n    .bjce-source-action a {\n        width: 100%;\n        height: 55px;\n\n        padding: 0 20px;\n\n        border-radius: 0;\n    }\n\n\n    \/* CTA *\/\n\n    .bjce-cta {\n        min-height: 600px;\n\n        padding: 90px 0;\n    }\n\n    .bjce-cta h2 {\n        margin-top: 38px;\n\n        font-size: clamp(70px, 21vw, 105px);\n    }\n\n    .bjce-cta-bottom {\n        margin-top: 60px;\n        margin-left: 0;\n\n        display: block;\n    }\n\n    .bjce-cta-bottom .bjce-button {\n        margin-top: 30px;\n    }\n\n\n    \/* FOOTER *\/\n\n    .bjce-footer {\n        padding-top: 65px;\n    }\n\n    .bjce-footer-top {\n        display: block;\n    }\n\n    .bjce-footer-message {\n        margin-top: 45px;\n\n        text-align: left;\n    }\n\n    .bjce-footer-grid {\n        grid-template-columns: repeat(2, 1fr);\n\n        gap: 45px 30px;\n    }\n\n    .bjce-footer-location {\n        grid-column: 1 \/ -1;\n    }\n\n    .bjce-footer-bottom {\n        display: block;\n    }\n\n    .bjce-footer-bottom span {\n        display: block;\n    }\n\n    .bjce-footer-bottom span + span {\n        margin-top: 10px;\n    }\n\n}\n\n\n\/* ================================================================\n   25. SMALL PHONE\n================================================================ *\/\n\n@media (max-width: 420px) {\n\n    .bjce-hero-title {\n        font-size: 61px;\n    }\n\n    .bjce-intro-copy h2,\n    .bjce-calendar-heading h2,\n    .bjce-pathway-heading h2 {\n        font-size: 48px;\n    }\n\n    .bjce-next-content h3 {\n        font-size: 30px;\n    }\n\n    .bjce-cta h2 {\n        font-size: 68px;\n    }\n\n}\n\n\n\/* ================================================================\n   26. ACCESSIBILITY \/ REDUCED MOTION\n================================================================ *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n    .bjce-site *,\n    .bjce-site *::before,\n    .bjce-site *::after {\n        scroll-behavior: auto !important;\n\n        animation-duration: 0.01ms !important;\n        animation-iteration-count: 1 !important;\n\n        transition-duration: 0.01ms !important;\n    }\n\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    \/* ============================================================\n       BARNET JUDO CLUB \u2014 LIVE BJC EVENTS V2\n\n       LIVE SOURCE:\n       https:\/\/britishjudocouncil.org\/events\n\n       No hard-coded event data.\n       Fetches BJC event pages when the Barnet page loads.\n    ============================================================ *\/\n\n    const BJC_ORIGIN = 'https:\/\/britishjudocouncil.org';\n    const BJC_EVENTS_URL = BJC_ORIGIN + '\/events';\n\n    const MAX_PAGES = 20;\n\n    let allEvents = [];\n    let activeCategory = 'all';\n    let activeYear = 'all';\n    let searchTerm = '';\n\n\n    \/* ============================================================\n       ELEMENTS\n    ============================================================ *\/\n\n    const timeline = document.getElementById('bjceEventTimeline');\n    const emptyState = document.getElementById('bjceEmpty');\n\n    const searchInput = document.getElementById('bjceSearch');\n    const searchClear = document.getElementById('bjceSearchClear');\n\n    const resetButton = document.getElementById('bjceResetFilters');\n    const emptyReset = document.getElementById('bjceEmptyReset');\n\n    const filterButtons = Array.from(\n        document.querySelectorAll('.bjce-filter')\n    );\n\n    const yearContainer = document.querySelector('.bjce-year-jump');\n\n    const eventCount = document.getElementById('bjceEventCount');\n    const showingCount = document.getElementById('bjceShowingCount');\n\n    const countAll = document.getElementById('bjceCountAll');\n    const countCompetition = document.getElementById('bjceCountCompetition');\n    const countCourse = document.getElementById('bjceCountCourse');\n    const countGrading = document.getElementById('bjceCountGrading');\n    const countOther = document.getElementById('bjceCountOther');\n\n    const dataMessage = document.getElementById('bjceDataMessage');\n\n    const nextPanel = document.getElementById('bjceNextEvent');\n    const nextDay = document.getElementById('bjceNextDay');\n    const nextMonth = document.getElementById('bjceNextMonth');\n    const nextYear = document.getElementById('bjceNextYear');\n    const nextCategory = document.getElementById('bjceNextCategory');\n    const nextTitle = document.getElementById('bjceNextTitle');\n    const nextDate = document.getElementById('bjceNextDate');\n    const nextVenue = document.getElementById('bjceNextVenue');\n    const nextDescription = document.getElementById('bjceNextDescription');\n    const nextLink = document.getElementById('bjceNextLink');\n\n\n    \/* ============================================================\n       STATUS\n    ============================================================ *\/\n\n    function setStatus(message) {\n        if (dataMessage) {\n            dataMessage.textContent = message;\n        }\n    }\n\n\n    function setLoading() {\n\n        setStatus('Connecting to the British Judo Council\u2026');\n\n        if (eventCount) {\n            eventCount.textContent = 'LOADING LIVE EVENTS';\n        }\n\n        if (timeline) {\n            timeline.innerHTML = `\n                <div style=\"\n                    padding:70px 0;\n                    text-align:center;\n                    font-size:10px;\n                    font-weight:900;\n                    letter-spacing:.18em;\n                \">\n                    CONNECTING TO BJC CALENDAR\u2026\n                <\/div>\n            `;\n        }\n    }\n\n\n    \/* ============================================================\n       FETCH BJC PAGE\n    ============================================================ *\/\n\n    async function fetchBJCPage(pageNumber) {\n\n        const url = pageNumber === 1\n            ? BJC_EVENTS_URL\n            : BJC_EVENTS_URL + '?page=' + pageNumber;\n\n        const response = await fetch(url, {\n            method: 'GET',\n            mode: 'cors',\n            credentials: 'omit',\n            cache: 'no-store',\n            headers: {\n                'Accept': 'text\/html'\n            }\n        });\n\n        if (!response.ok) {\n            throw new Error(\n                'BJC returned HTTP ' + response.status\n            );\n        }\n\n        return await response.text();\n    }\n\n\n    \/* ============================================================\n       BASIC HELPERS\n    ============================================================ *\/\n\n    function cleanText(value) {\n\n        return String(value || '')\n            .replace(\/\\u00a0\/g, ' ')\n            .replace(\/\\s+\/g, ' ')\n            .trim();\n    }\n\n\n    function normaliseText(value) {\n\n        return cleanText(value)\n            .toLowerCase();\n    }\n\n\n    function absoluteBJCUrl(value) {\n\n        if (!value) {\n            return BJC_EVENTS_URL;\n        }\n\n        try {\n            return new URL(value, BJC_ORIGIN).href;\n        } catch (error) {\n            return BJC_EVENTS_URL;\n        }\n    }\n\n\n    function parseUKDate(value) {\n\n        const match = cleanText(value).match(\n            \/(\\d{1,2})\\s+([A-Za-z]{3})\\s+(\\d{4})\/i\n        );\n\n        if (!match) {\n            return null;\n        }\n\n        const months = {\n            jan: 0,\n            feb: 1,\n            mar: 2,\n            apr: 3,\n            may: 4,\n            jun: 5,\n            jul: 6,\n            aug: 7,\n            sep: 8,\n            oct: 9,\n            nov: 10,\n            dec: 11\n        };\n\n        const month =\n            months[match[2].toLowerCase()];\n\n        if (typeof month === 'undefined') {\n            return null;\n        }\n\n        return new Date(\n            Number(match[3]),\n            month,\n            Number(match[1]),\n            12,\n            0,\n            0\n        );\n    }\n\n\n    function dateToISO(date) {\n\n        if (!date) {\n            return '';\n        }\n\n        return [\n            date.getFullYear(),\n            String(date.getMonth() + 1).padStart(2, '0'),\n            String(date.getDate()).padStart(2, '0')\n        ].join('-');\n    }\n\n\n    function isoToDate(value) {\n\n        const parts = String(value).split('-');\n\n        return new Date(\n            Number(parts[0]),\n            Number(parts[1]) - 1,\n            Number(parts[2]),\n            12,\n            0,\n            0\n        );\n    }\n\n\n    function shortMonth(date) {\n\n        return date\n            .toLocaleDateString('en-GB', {\n                month: 'short'\n            })\n            .toUpperCase();\n    }\n\n\n    function longMonth(date) {\n\n        return date\n            .toLocaleDateString('en-GB', {\n                month: 'long'\n            })\n            .toUpperCase();\n    }\n\n\n    function fullDate(value) {\n\n        const date = isoToDate(value);\n\n        return date\n            .toLocaleDateString('en-GB', {\n                day: 'numeric',\n                month: 'long',\n                year: 'numeric'\n            })\n            .toUpperCase();\n    }\n\n\n    \/* ============================================================\n       CATEGORY DETECTION\n    ============================================================ *\/\n\n    function detectCategory(title, description) {\n\n        const text = normaliseText(\n            title + ' ' + description\n        );\n\n        if (\n            text.includes('competition') ||\n            text.includes('championship') ||\n            text.includes('championships') ||\n            text.includes('nationals') ||\n            text.includes('national championship') ||\n            text.includes('open comp')\n        ) {\n            return 'competition';\n        }\n\n        if (\n            text.includes('grading') ||\n            text.includes('grade examination')\n        ) {\n            return 'grading';\n        }\n\n        if (\n            text.includes('course') ||\n            text.includes('webinar') ||\n            text.includes('training') ||\n            text.includes('coaching') ||\n            text.includes('seminar')\n        ) {\n            return 'course';\n        }\n\n        return 'other';\n    }\n\n\n    function categoryLabel(category) {\n\n        const labels = {\n            competition: 'COMPETITION',\n            course: 'COURSE',\n            grading: 'GRADING',\n            other: 'OTHER'\n        };\n\n        return labels[category] || 'OTHER';\n    }\n\n\n    \/* ============================================================\n       PARSE ONE BJC EVENTS PAGE\n\n       The BJC listings expose event-detail links. We use those\n       links as the anchors for locating individual event cards.\n    ============================================================ *\/\n\n    function parseEventsPage(html) {\n\n        const parser = new DOMParser();\n\n        const doc = parser.parseFromString(\n            html,\n            'text\/html'\n        );\n\n        const events = [];\n\n        const detailLinks = Array.from(\n            doc.querySelectorAll('a[href*=\"\/event-detail\/\"]')\n        );\n\n        const seenLinks = new Set();\n\n\n        detailLinks.forEach(function (link) {\n\n            const href = absoluteBJCUrl(\n                link.getAttribute('href')\n            );\n\n            if (seenLinks.has(href)) {\n                return;\n            }\n\n            seenLinks.add(href);\n\n\n            \/* Find the nearest sensible event container *\/\n\n            let card = link;\n\n            for (let i = 0; i < 7 &#038;&#038; card.parentElement; i++) {\n\n                card = card.parentElement;\n\n                const cardText = cleanText(\n                    card.textContent\n                );\n\n                if (\n                    \/\\d{1,2}\\s+[A-Za-z]{3}\\s+\\d{4}\/i.test(cardText) &#038;&#038;\n                    cardText.length > 20 &&\n                    cardText.length < 4000\n                ) {\n                    break;\n                }\n            }\n\n\n            const cardText = cleanText(\n                card.textContent\n            );\n\n\n            \/* TITLE *\/\n\n            let title = '';\n\n            const heading =\n                card.querySelector(\n                    'h1, h2, h3, h4, h5, h6'\n                );\n\n            if (heading) {\n                title = cleanText(\n                    heading.textContent\n                );\n            }\n\n            if (!title) {\n\n                const linkText = cleanText(\n                    link.textContent\n                );\n\n                if (\n                    linkText &#038;&#038;\n                    !\/read more|know more\/i.test(linkText)\n                ) {\n                    title = linkText;\n                }\n            }\n\n            if (!title) {\n\n                let previous = link.previousElementSibling;\n\n                while (previous &#038;&#038; !title) {\n\n                    const candidate =\n                        cleanText(previous.textContent);\n\n                    if (\n                        candidate &#038;&#038;\n                        !\/read more|know more\/i.test(candidate)\n                    ) {\n                        title = candidate;\n                    }\n\n                    previous =\n                        previous.previousElementSibling;\n                }\n            }\n\n\n            \/* DATE \/ DATE RANGE *\/\n\n            const dateMatches =\n                cardText.match(\n                    \/\\d{1,2}\\s+[A-Za-z]{3}\\s+\\d{4}\/gi\n                ) || [];\n\n            if (!dateMatches.length) {\n                return;\n            }\n\n            const startDate =\n                parseUKDate(dateMatches[0]);\n\n            if (!startDate) {\n                return;\n            }\n\n            const endDate =\n                dateMatches.length > 1\n                    ? parseUKDate(dateMatches[1])\n                    : null;\n\n\n            \/* DESCRIPTION *\/\n\n            let description = '';\n\n            const paragraphs = Array.from(\n                card.querySelectorAll('p')\n            );\n\n            const usefulParagraph =\n                paragraphs.find(function (paragraph) {\n\n                    const text =\n                        cleanText(paragraph.textContent);\n\n                    return (\n                        text.length > 20 &&\n                        !\/read more|know more\/i.test(text)\n                    );\n                });\n\n            if (usefulParagraph) {\n\n                description = cleanText(\n                    usefulParagraph.textContent\n                );\n            }\n\n\n            \/*\n               Some BJC cards may not wrap descriptions in <p>.\n               Use card text as a cautious fallback.\n            *\/\n\n            if (!description) {\n\n                description = cardText\n                    .replace(title, '')\n                    .replace(dateMatches[0], '')\n                    .replace(\n                        dateMatches[1] || '',\n                        ''\n                    )\n                    .replace(\/read more\/ig, '')\n                    .replace(\/know more\/ig, '');\n\n                description =\n                    cleanText(description);\n\n                if (description.length > 280) {\n                    description =\n                        description.substring(0, 277) + '\u2026';\n                }\n            }\n\n\n            const category =\n                detectCategory(\n                    title,\n                    description\n                );\n\n\n            if (!title) {\n                return;\n            }\n\n\n            events.push({\n\n                id: href,\n\n                title: title,\n\n                start: dateToISO(startDate),\n\n                end: endDate\n                    ? dateToISO(endDate)\n                    : '',\n\n                category: category,\n\n                location:\n                    'See official BJC event details',\n\n                description:\n                    description ||\n                    'Full information is available from the British Judo Council.',\n\n                url: href\n            });\n\n        });\n\n\n        return {\n            events: events,\n            document: doc\n        };\n    }\n\n\n    \/* ============================================================\n       DOES THIS PAGE HAVE A NEXT PAGE?\n    ============================================================ *\/\n\n    function hasNextPage(doc, currentPage) {\n\n        const links = Array.from(\n            doc.querySelectorAll('a[href]')\n        );\n\n        const wantedPage =\n            currentPage + 1;\n\n        return links.some(function (link) {\n\n            const href =\n                link.getAttribute('href') || '';\n\n            try {\n\n                const url =\n                    new URL(href, BJC_ORIGIN);\n\n                return (\n                    url.pathname\n                        .replace(\/\\\/+$\/, '') === '\/events' &&\n                    Number(\n                        url.searchParams.get('page')\n                    ) === wantedPage\n                );\n\n            } catch (error) {\n\n                return false;\n            }\n        });\n    }\n\n\n    \/* ============================================================\n       LOAD ALL BJC PAGES\n    ============================================================ *\/\n\n    async function loadAllBJCEvents() {\n\n        const collected = [];\n\n        let pageNumber = 1;\n\n\n        while (pageNumber <= MAX_PAGES) {\n\n            setStatus(\n                'Reading BJC calendar page ' +\n                pageNumber +\n                '\u2026'\n            );\n\n            const html =\n                await fetchBJCPage(pageNumber);\n\n            const result =\n                parseEventsPage(html);\n\n\n            \/*\n               If BJC returns an explicit empty-event page,\n               we have reached the end.\n            *\/\n\n            const pageText =\n                normaliseText(\n                    result.document.body.textContent\n                );\n\n            const explicitlyEmpty =\n                pageText.includes('no event avilable') ||\n                pageText.includes('no event available');\n\n\n            if (explicitlyEmpty) {\n                break;\n            }\n\n\n            collected.push(\n                ...result.events\n            );\n\n\n            \/*\n               No next-page link means we are done.\n            *\/\n\n            if (\n                !hasNextPage(\n                    result.document,\n                    pageNumber\n                )\n            ) {\n                break;\n            }\n\n\n            pageNumber++;\n        }\n\n\n        \/* Deduplicate using event detail URL *\/\n\n        const unique = new Map();\n\n        collected.forEach(function (event) {\n\n            if (!unique.has(event.id)) {\n                unique.set(\n                    event.id,\n                    event\n                );\n            }\n        });\n\n\n        return Array.from(\n            unique.values()\n        ).sort(function (a, b) {\n\n            return (\n                isoToDate(a.start) -\n                isoToDate(b.start)\n            );\n        });\n    }\n\n\n    \/* ============================================================\n       UPCOMING ONLY\n    ============================================================ *\/\n\n    function removePastEvents(events) {\n\n        const today = new Date();\n\n        today.setHours(0, 0, 0, 0);\n\n        return events.filter(function (event) {\n\n            const comparisonDate =\n                event.end\n                    ? isoToDate(event.end)\n                    : isoToDate(event.start);\n\n            comparisonDate.setHours(\n                23,\n                59,\n                59,\n                999\n            );\n\n            return comparisonDate >= today;\n        });\n    }\n\n\n    \/* ============================================================\n       COUNTS\n    ============================================================ *\/\n\n    function updateCounts() {\n\n        const counts = {\n            all: allEvents.length,\n            competition: 0,\n            course: 0,\n            grading: 0,\n            other: 0\n        };\n\n\n        allEvents.forEach(function (event) {\n\n            if (\n                Object.prototype\n                    .hasOwnProperty.call(\n                        counts,\n                        event.category\n                    )\n            ) {\n                counts[event.category]++;\n            }\n        });\n\n\n        if (countAll) {\n            countAll.textContent =\n                counts.all;\n        }\n\n        if (countCompetition) {\n            countCompetition.textContent =\n                counts.competition;\n        }\n\n        if (countCourse) {\n            countCourse.textContent =\n                counts.course;\n        }\n\n        if (countGrading) {\n            countGrading.textContent =\n                counts.grading;\n        }\n\n        if (countOther) {\n            countOther.textContent =\n                counts.other;\n        }\n\n\n        if (eventCount) {\n\n            eventCount.textContent =\n                counts.all +\n                (\n                    counts.all === 1\n                        ? ' LIVE EVENT'\n                        : ' LIVE EVENTS'\n                );\n        }\n    }\n\n\n    \/* ============================================================\n       DYNAMIC YEAR BUTTONS\n    ============================================================ *\/\n\n    function buildYearButtons() {\n\n        if (!yearContainer) {\n            return;\n        }\n\n\n        const years = Array.from(\n            new Set(\n                allEvents.map(function (event) {\n\n                    return String(\n                        isoToDate(\n                            event.start\n                        ).getFullYear()\n                    );\n                })\n            )\n        ).sort();\n\n\n        yearContainer.innerHTML = '';\n\n\n        const label =\n            document.createElement('span');\n\n        label.textContent = 'YEAR';\n\n        yearContainer.appendChild(label);\n\n\n        const allButton =\n            document.createElement('button');\n\n        allButton.type = 'button';\n        allButton.className =\n            'bjce-year-button is-active';\n\n        allButton.setAttribute(\n            'data-year',\n            'all'\n        );\n\n        allButton.textContent = 'ALL';\n\n        yearContainer.appendChild(\n            allButton\n        );\n\n\n        years.forEach(function (year) {\n\n            const button =\n                document.createElement('button');\n\n            button.type = 'button';\n\n            button.className =\n                'bjce-year-button';\n\n            button.setAttribute(\n                'data-year',\n                year\n            );\n\n            button.textContent = year;\n\n            yearContainer.appendChild(\n                button\n            );\n        });\n\n\n        bindYearButtons();\n    }\n\n\n    \/* ============================================================\n       NEXT UP\n    ============================================================ *\/\n\n    function renderNextEvent() {\n\n        const event =\n            allEvents.length\n                ? allEvents[0]\n                : null;\n\n\n        if (!event) {\n\n            if (nextPanel) {\n                nextPanel.style.display = 'none';\n            }\n\n            return;\n        }\n\n\n        if (nextPanel) {\n            nextPanel.style.display = '';\n        }\n\n\n        const date =\n            isoToDate(event.start);\n\n\n        if (nextDay) {\n\n            nextDay.textContent =\n                String(\n                    date.getDate()\n                ).padStart(2, '0');\n        }\n\n\n        if (nextMonth) {\n            nextMonth.textContent =\n                shortMonth(date);\n        }\n\n\n        if (nextYear) {\n            nextYear.textContent =\n                date.getFullYear();\n        }\n\n\n        if (nextCategory) {\n            nextCategory.textContent =\n                categoryLabel(\n                    event.category\n                );\n        }\n\n\n        if (nextTitle) {\n            nextTitle.textContent =\n                event.title;\n        }\n\n\n        if (nextDate) {\n\n            let value =\n                fullDate(event.start);\n\n            if (event.end) {\n                value +=\n                    ' \u2014 ' +\n                    fullDate(event.end);\n            }\n\n            nextDate.textContent =\n                value;\n        }\n\n\n        if (nextVenue) {\n            nextVenue.textContent =\n                event.location;\n        }\n\n\n        if (nextDescription) {\n            nextDescription.textContent =\n                event.description;\n        }\n\n\n        if (nextLink) {\n\n            nextLink.href =\n                event.url;\n\n            nextLink.target =\n                '_blank';\n\n            nextLink.rel =\n                'noopener noreferrer';\n        }\n    }\n\n\n    \/* ============================================================\n       FILTERING\n    ============================================================ *\/\n\n    function filteredEvents() {\n\n        return allEvents.filter(\n            function (event) {\n\n                const categoryMatches =\n                    activeCategory === 'all' ||\n                    event.category ===\n                        activeCategory;\n\n\n                const year =\n                    String(\n                        isoToDate(\n                            event.start\n                        ).getFullYear()\n                    );\n\n\n                const yearMatches =\n                    activeYear === 'all' ||\n                    year === activeYear;\n\n\n                const haystack =\n                    normaliseText(\n                        event.title + ' ' +\n                        event.description + ' ' +\n                        event.location + ' ' +\n                        categoryLabel(\n                            event.category\n                        )\n                    );\n\n\n                const searchMatches =\n                    !searchTerm ||\n                    haystack.includes(\n                        searchTerm\n                    );\n\n\n                return (\n                    categoryMatches &&\n                    yearMatches &&\n                    searchMatches\n                );\n            }\n        );\n    }\n\n\n    \/* ============================================================\n       GROUP BY MONTH\n    ============================================================ *\/\n\n    function groupByMonth(events) {\n\n        const groups = {};\n\n\n        events.forEach(function (event) {\n\n            const date =\n                isoToDate(event.start);\n\n            const key =\n                date.getFullYear() +\n                '-' +\n                String(\n                    date.getMonth() + 1\n                ).padStart(2, '0');\n\n\n            if (!groups[key]) {\n                groups[key] = [];\n            }\n\n\n            groups[key].push(event);\n        });\n\n\n        return groups;\n    }\n\n\n    \/* ============================================================\n       CREATE EVENT ROW\n    ============================================================ *\/\n\n    function createEventRow(event) {\n\n        const date =\n            isoToDate(event.start);\n\n\n        const row =\n            document.createElement(\n                'article'\n            );\n\n\n        row.className =\n            'bjce-event-row';\n\n        row.setAttribute(\n            'data-category',\n            event.category\n        );\n\n\n        \/* DATE *\/\n\n        const dateBox =\n            document.createElement('div');\n\n        dateBox.className =\n            'bjce-event-date';\n\n\n        const day =\n            document.createElement('span');\n\n        day.className =\n            'bjce-event-date-day';\n\n        day.textContent =\n            String(\n                date.getDate()\n            ).padStart(2, '0');\n\n\n        const dateCopy =\n            document.createElement('span');\n\n        dateCopy.className =\n            'bjce-event-date-copy';\n\n\n        const month =\n            document.createElement('strong');\n\n        month.textContent =\n            shortMonth(date);\n\n\n        const year =\n            document.createElement('span');\n\n        year.textContent =\n            date.getFullYear();\n\n\n        dateCopy.append(\n            month,\n            year\n        );\n\n\n        dateBox.append(\n            day,\n            dateCopy\n        );\n\n\n        \/* MAIN *\/\n\n        const main =\n            document.createElement('div');\n\n        main.className =\n            'bjce-event-main';\n\n\n        const tag =\n            document.createElement('div');\n\n        tag.className =\n            'bjce-event-tag';\n\n        tag.textContent =\n            categoryLabel(\n                event.category\n            );\n\n\n        const title =\n            document.createElement('h4');\n\n        title.textContent =\n            event.title;\n\n\n        const location =\n            document.createElement('div');\n\n        location.className =\n            'bjce-event-location';\n\n        location.textContent =\n            event.location;\n\n\n        const description =\n            document.createElement('p');\n\n        description.className =\n            'bjce-event-description';\n\n        description.textContent =\n            event.description;\n\n\n        main.append(\n            tag,\n            title,\n            location,\n            description\n        );\n\n\n        \/* ACTION *\/\n\n        const action =\n            document.createElement('div');\n\n        action.className =\n            'bjce-event-action';\n\n\n        const link =\n            document.createElement('a');\n\n        link.className =\n            'bjce-event-link';\n\n        link.href =\n            event.url;\n\n        link.target =\n            '_blank';\n\n        link.rel =\n            'noopener noreferrer';\n\n        link.setAttribute(\n            'aria-label',\n            'View ' +\n            event.title +\n            ' on the British Judo Council website'\n        );\n\n\n        const linkText =\n            document.createElement('span');\n\n        linkText.innerHTML =\n            'VIEW<br>EVENT';\n\n\n        const arrow =\n            document.createElement('b');\n\n        arrow.textContent = '\u2197';\n\n\n        link.append(\n            linkText,\n            arrow\n        );\n\n        action.appendChild(link);\n\n\n        row.append(\n            dateBox,\n            main,\n            action\n        );\n\n\n        return row;\n    }\n\n\n    \/* ============================================================\n       RENDER TIMELINE\n    ============================================================ *\/\n\n    function renderTimeline() {\n\n        if (!timeline) {\n            return;\n        }\n\n\n        const events =\n            filteredEvents();\n\n\n        timeline.innerHTML = '';\n\n\n        if (showingCount) {\n            showingCount.textContent =\n                events.length;\n        }\n\n\n        if (!events.length) {\n\n            if (emptyState) {\n                emptyState.classList.add(\n                    'is-visible'\n                );\n            }\n\n            return;\n        }\n\n\n        if (emptyState) {\n            emptyState.classList.remove(\n                'is-visible'\n            );\n        }\n\n\n        const groups =\n            groupByMonth(events);\n\n\n        Object.keys(groups)\n            .sort()\n            .forEach(function (key) {\n\n                const monthEvents =\n                    groups[key];\n\n                const firstDate =\n                    isoToDate(\n                        monthEvents[0].start\n                    );\n\n\n                const section =\n                    document.createElement(\n                        'section'\n                    );\n\n                section.className =\n                    'bjce-month';\n\n\n                const heading =\n                    document.createElement(\n                        'div'\n                    );\n\n                heading.className =\n                    'bjce-month-heading';\n\n\n                const title =\n                    document.createElement(\n                        'h3'\n                    );\n\n                title.append(\n                    document.createTextNode(\n                        longMonth(firstDate) +\n                        ' '\n                    )\n                );\n\n\n                const year =\n                    document.createElement(\n                        'span'\n                    );\n\n                year.textContent =\n                    firstDate.getFullYear();\n\n                title.appendChild(year);\n\n\n                const line =\n                    document.createElement(\n                        'div'\n                    );\n\n                line.className =\n                    'bjce-month-line';\n\n\n                const count =\n                    document.createElement(\n                        'div'\n                    );\n\n                count.className =\n                    'bjce-month-count';\n\n                count.textContent =\n                    monthEvents.length +\n                    (\n                        monthEvents.length === 1\n                            ? ' EVENT'\n                            : ' EVENTS'\n                    );\n\n\n                heading.append(\n                    title,\n                    line,\n                    count\n                );\n\n\n                section.appendChild(\n                    heading\n                );\n\n\n                monthEvents.forEach(\n                    function (event) {\n\n                        section.appendChild(\n                            createEventRow(\n                                event\n                            )\n                        );\n                    }\n                );\n\n\n                timeline.appendChild(\n                    section\n                );\n            });\n    }\n\n\n    \/* ============================================================\n       CATEGORY BUTTONS\n    ============================================================ *\/\n\n    filterButtons.forEach(\n        function (button) {\n\n            button.addEventListener(\n                'click',\n                function () {\n\n                    activeCategory =\n                        button.getAttribute(\n                            'data-filter'\n                        ) || 'all';\n\n\n                    filterButtons.forEach(\n                        function (item) {\n\n                            item.classList.remove(\n                                'is-active'\n                            );\n                        }\n                    );\n\n\n                    button.classList.add(\n                        'is-active'\n                    );\n\n\n                    renderTimeline();\n                }\n            );\n        }\n    );\n\n\n    \/* ============================================================\n       YEAR BUTTONS\n    ============================================================ *\/\n\n    function bindYearButtons() {\n\n        document\n            .querySelectorAll(\n                '.bjce-year-button'\n            )\n            .forEach(function (button) {\n\n                button.addEventListener(\n                    'click',\n                    function () {\n\n                        activeYear =\n                            button.getAttribute(\n                                'data-year'\n                            ) || 'all';\n\n\n                        document\n                            .querySelectorAll(\n                                '.bjce-year-button'\n                            )\n                            .forEach(\n                                function (item) {\n\n                                    item.classList.remove(\n                                        'is-active'\n                                    );\n                                }\n                            );\n\n\n                        button.classList.add(\n                            'is-active'\n                        );\n\n\n                        renderTimeline();\n                    }\n                );\n            });\n    }\n\n\n    \/* ============================================================\n       SEARCH\n    ============================================================ *\/\n\n    if (searchInput) {\n\n        searchInput.addEventListener(\n            'input',\n            function () {\n\n                searchTerm =\n                    normaliseText(\n                        searchInput.value\n                    );\n\n                renderTimeline();\n            }\n        );\n    }\n\n\n    if (searchClear) {\n\n        searchClear.addEventListener(\n            'click',\n            function () {\n\n                searchTerm = '';\n\n                if (searchInput) {\n\n                    searchInput.value = '';\n                    searchInput.focus();\n                }\n\n                renderTimeline();\n            }\n        );\n    }\n\n\n    \/* ============================================================\n       RESET\n    ============================================================ *\/\n\n    function resetFilters() {\n\n        activeCategory = 'all';\n        activeYear = 'all';\n        searchTerm = '';\n\n\n        if (searchInput) {\n            searchInput.value = '';\n        }\n\n\n        filterButtons.forEach(\n            function (button) {\n\n                button.classList.toggle(\n                    'is-active',\n                    button.getAttribute(\n                        'data-filter'\n                    ) === 'all'\n                );\n            }\n        );\n\n\n        document\n            .querySelectorAll(\n                '.bjce-year-button'\n            )\n            .forEach(function (button) {\n\n                button.classList.toggle(\n                    'is-active',\n                    button.getAttribute(\n                        'data-year'\n                    ) === 'all'\n                );\n            });\n\n\n        renderTimeline();\n    }\n\n\n    if (resetButton) {\n        resetButton.addEventListener(\n            'click',\n            resetFilters\n        );\n    }\n\n\n    if (emptyReset) {\n        emptyReset.addEventListener(\n            'click',\n            resetFilters\n        );\n    }\n\n\n    \/* ============================================================\n       MOBILE MENU\n    ============================================================ *\/\n\n    const menuButton =\n        document.getElementById(\n            'bjceMenuButton'\n        );\n\n    const mobileMenu =\n        document.getElementById(\n            'bjceMobileMenu'\n        );\n\n\n    if (menuButton && mobileMenu) {\n\n        menuButton.addEventListener(\n            'click',\n            function () {\n\n                const open =\n                    mobileMenu.classList.toggle(\n                        'is-open'\n                    );\n\n                menuButton.setAttribute(\n                    'aria-expanded',\n                    open ? 'true' : 'false'\n                );\n            }\n        );\n    }\n\n\n    \/* ============================================================\n       COPYRIGHT\n    ============================================================ *\/\n\n    const copyrightYear =\n        document.getElementById(\n            'bjceCopyrightYear'\n        );\n\n\n    if (copyrightYear) {\n\n        copyrightYear.textContent =\n            new Date().getFullYear();\n    }\n\n\n    \/* ============================================================\n       EXTERNAL BJC LINKS\n    ============================================================ *\/\n\n    document\n        .querySelectorAll(\n            '.bjce-site a[href*=\"britishjudocouncil.org\"]'\n        )\n        .forEach(function (link) {\n\n            link.target = '_blank';\n            link.rel =\n                'noopener noreferrer';\n        });\n\n\n    \/* ============================================================\n       LIVE INITIALISATION\n    ============================================================ *\/\n\n    async function initialiseLiveEvents() {\n\n        setLoading();\n\n\n        try {\n\n            const fetchedEvents =\n                await loadAllBJCEvents();\n\n\n            if (!fetchedEvents.length) {\n\n                throw new Error(\n                    'The BJC connection succeeded, but no event cards could be parsed.'\n                );\n            }\n\n\n            allEvents =\n                removePastEvents(\n                    fetchedEvents\n                );\n\n\n            updateCounts();\n\n            buildYearButtons();\n\n            renderNextEvent();\n\n            renderTimeline();\n\n\n            setStatus(\n                'LIVE \u2022 ' +\n                allEvents.length +\n                ' upcoming BJC events loaded automatically'\n            );\n\n\n            console.log(\n                'Barnet Judo Club: live BJC events loaded',\n                allEvents\n            );\n\n\n        } catch (error) {\n\n            console.error(\n                'Barnet Judo Club: BJC live feed failed',\n                error\n            );\n\n\n            allEvents = [];\n\n\n            if (timeline) {\n\n                timeline.innerHTML = `\n                    <div style=\"\n                        padding:70px 25px;\n                        border-top:1px solid rgba(7,7,8,.14);\n                        border-bottom:1px solid rgba(7,7,8,.14);\n                        text-align:center;\n                    \">\n\n                        <strong style=\"\n                            display:block;\n                            font-size:18px;\n                            margin-bottom:12px;\n                        \">\n                            LIVE BJC CONNECTION UNAVAILABLE\n                        <\/strong>\n\n                        <span style=\"\n                            display:block;\n                            max-width:650px;\n                            margin:0 auto 24px;\n                            color:#77757a;\n                            font-size:13px;\n                            line-height:1.7;\n                        \">\n                            The British Judo Council calendar could not\n                            be read directly from this browser.\n                            No substitute or outdated event data has\n                            been displayed.\n                        <\/span>\n\n                        <a\n                            href=\"${BJC_EVENTS_URL}\"\n                            target=\"_blank\"\n                            rel=\"noopener noreferrer\"\n                            style=\"\n                                display:inline-block;\n                                padding:16px 22px;\n                                background:#070708;\n                                color:#fff;\n                                font-size:9px;\n                                font-weight:900;\n                                letter-spacing:.15em;\n                            \"\n                        >\n                            VIEW OFFICIAL BJC CALENDAR \u2197\n                        <\/a>\n\n                    <\/div>\n                `;\n            }\n\n\n            if (eventCount) {\n\n                eventCount.textContent =\n                    'LIVE CONNECTION UNAVAILABLE';\n            }\n\n\n            setStatus(\n                'BJC live connection unavailable \u2014 official calendar link provided'\n            );\n\n\n            if (nextPanel) {\n                nextPanel.style.display =\n                    'none';\n            }\n        }\n    }\n\n\n    initialiseLiveEvents();\n\n});\n<\/script>\n\n<!-- ============================================================\n     BARNET JUDO CLUB \u2014 EVENTS V2\n     COMPLETE HTML\n     Page ID: 798\n============================================================= -->\n\n<div class=\"bjce-site\" id=\"bjceSite\">\n\n    <!-- ========================================================\n         HEADER\n    ========================================================= -->\n\n    <header class=\"bjce-header\" id=\"bjceHeader\">\n\n        <div class=\"bjce-header-inner\">\n\n            <a class=\"bjce-brand\" href=\"\/\" aria-label=\"Barnet Judo Club home\">\n\n                <img decoding=\"async\"\n                    class=\"bjce-brand-mark lazyload\"\n                    data-src=\"https:\/\/barnetjudo.co.uk\/wp-content\/uploads\/2020\/07\/cropped-BarnetJudoClubLogo-1.png\"\n                    alt=\"Barnet Judo Club\"\n                 src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 512px; --smush-placeholder-aspect-ratio: 512\/512;\">\n\n                <div class=\"bjce-brand-copy\">\n                    <strong>BARNET<\/strong>\n                    <span>JUDO CLUB<\/span>\n                <\/div>\n\n            <\/a>\n\n\n            <nav class=\"bjce-nav\" aria-label=\"Main navigation\">\n\n                <a href=\"\/index.php\/about\/\">ABOUT<\/a>\n\n                <a href=\"\/index.php\/firstvisit\/\">FIRST VISIT<\/a>\n\n                <a href=\"\/index.php\/coaches\/\">COACHES<\/a>\n\n                <a href=\"\/index.php\/judoka\/\">JUDOKA<\/a>\n\n                <a\n                    href=\"\/index.php\/bjc-events\/\"\n                    class=\"is-active\"\n                    aria-current=\"page\"\n                >\n                    EVENTS\n                <\/a>\n\n                <a\n                    class=\"bjce-nav-contact\"\n                    href=\"\/index.php\/contact\/\"\n                >\n                    CONTACT\n                    <span>\u2197<\/span>\n                <\/a>\n\n            <\/nav>\n\n\n            <button\n                class=\"bjce-menu-button\"\n                id=\"bjceMenuButton\"\n                type=\"button\"\n                aria-expanded=\"false\"\n                aria-controls=\"bjceMobileMenu\"\n                aria-label=\"Open menu\"\n            >\n                <span><\/span>\n                <span><\/span>\n            <\/button>\n\n        <\/div>\n\n\n        <nav\n            class=\"bjce-mobile-menu\"\n            id=\"bjceMobileMenu\"\n            aria-label=\"Mobile navigation\"\n        >\n            <a href=\"\/index.php\/about\/\">ABOUT<\/a>\n            <a href=\"\/index.php\/firstvisit\/\">FIRST VISIT<\/a>\n            <a href=\"\/index.php\/coaches\/\">COACHES<\/a>\n            <a href=\"\/index.php\/judoka\/\">JUDOKA<\/a>\n            <a href=\"\/index.php\/bjc-events\/\">EVENTS<\/a>\n            <a href=\"\/index.php\/contact\/\">CONTACT \u2197<\/a>\n        <\/nav>\n\n    <\/header>\n\n\n\n    <!-- ========================================================\n         HERO\n    ========================================================= -->\n\n    <section class=\"bjce-hero\">\n\n        <div class=\"bjce-hero-grid\"><\/div>\n        <div class=\"bjce-hero-glow\"><\/div>\n        <div class=\"bjce-hero-kanji\" aria-hidden=\"true\">\u67d4\u9053<\/div>\n\n\n        <div class=\"bjce-container bjce-hero-inner\">\n\n            <div class=\"bjce-eyebrow\">\n\n                <span>EVENTS<\/span>\n\n                <i><\/i>\n\n                <span>BARNET \u00b7 NORTH LONDON<\/span>\n\n            <\/div>\n\n\n            <h1 class=\"bjce-hero-title\">\n\n                WHAT\u2019S\n\n                <span class=\"bjce-outline\">\n                    HAPPENING.\n                <\/span>\n\n            <\/h1>\n\n\n            <div class=\"bjce-hero-bottom\">\n\n                <p>\n                    Competitions, courses, gradings and training\n                    opportunities from across the British Judo Council.\n                    One place to see what\u2019s coming up.\n                <\/p>\n\n\n                <a\n                    class=\"bjce-button bjce-button-light\"\n                    href=\"#bjceCalendar\"\n                >\n                    EXPLORE EVENTS\n                    <span>\u2193<\/span>\n                <\/a>\n\n            <\/div>\n\n        <\/div>\n\n\n        <div class=\"bjce-scroll\">\n            <span>01 \/ EVENTS<\/span>\n        <\/div>\n\n    <\/section>\n\n\n\n    <!-- ========================================================\n         INTRO\n    ========================================================= -->\n\n    <section class=\"bjce-intro\">\n\n        <div\n            class=\"bjce-intro-kanji\"\n            aria-hidden=\"true\"\n        >\n            \u67d4\u9053\n        <\/div>\n\n\n        <div class=\"bjce-container bjce-intro-grid\">\n\n            <div>\n\n                <div class=\"bjce-section-label\">\n                    BEYOND THE CLUB\n                <\/div>\n\n\n                <h2 class=\"bjce-intro-copy\">\n\n                    MORE JUDO.<br>\n\n                    <span>\n                        MORE<br>\n                        OPPORTUNITIES.\n                    <\/span>\n\n                <\/h2>\n\n            <\/div>\n\n\n            <div class=\"bjce-intro-text\">\n\n                <p>\n                    Barnet Judo Club is part of the British Judo\n                    Council. Throughout the year the BJC organises\n                    competitions, courses, gradings, squad training\n                    and other events for its members.\n                <\/p>\n\n                <p>\n                    We\u2019ve brought the calendar together here so\n                    Barnet members can quickly see what\u2019s coming up.\n                <\/p>\n\n            <\/div>\n\n        <\/div>\n\n    <\/section>\n\n\n\n    <!-- ========================================================\n         LIVE CALENDAR\n    ========================================================= -->\n\n    <section\n        class=\"bjce-calendar\"\n        id=\"bjceCalendar\"\n    >\n\n        <div class=\"bjce-container\">\n\n\n            <!-- CALENDAR HEADING -->\n\n            <div class=\"bjce-calendar-heading\">\n\n                <div>\n\n                    <div\n                        class=\"bjce-section-label bjce-section-label-dark\"\n                    >\n                        UPCOMING\n                    <\/div>\n\n\n                    <h2>\n                        BJC <span>EVENTS.<\/span>\n                    <\/h2>\n\n                <\/div>\n\n\n                <div class=\"bjce-calendar-summary\">\n\n                    <p>\n                        Browse upcoming British Judo Council events.\n                        Search, filter and follow the official event\n                        link for full information.\n                    <\/p>\n\n\n                    <div>\n                        <span class=\"bjce-live-dot\"><\/span>\n\n                        <strong id=\"bjceEventCount\">\n                            CONNECTING TO BJC\u2026\n                        <\/strong>\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n\n\n\n            <!-- ==================================================\n                 NEXT UP\n            =================================================== -->\n\n            <article\n                class=\"bjce-next\"\n                id=\"bjceNextEvent\"\n            >\n\n                <div class=\"bjce-next-top\">\n\n                    <div class=\"bjce-next-label\">\n\n                        <span class=\"bjce-pulse\"><\/span>\n\n                        NEXT UP\n\n                    <\/div>\n\n\n                    <div class=\"bjce-next-source\">\n                        BRITISH JUDO COUNCIL\n                    <\/div>\n\n                <\/div>\n\n\n                <div class=\"bjce-next-grid\">\n\n\n                    <div class=\"bjce-next-date\">\n\n                        <strong id=\"bjceNextDay\">\n                            \u2014\n                        <\/strong>\n\n                        <span id=\"bjceNextMonth\">\n                            \u2014\n                        <\/span>\n\n                        <small id=\"bjceNextYear\">\n                            \u2014\n                        <\/small>\n\n                    <\/div>\n\n\n\n                    <div class=\"bjce-next-main\">\n\n                        <div\n                            class=\"bjce-event-tag\"\n                            id=\"bjceNextCategory\"\n                        >\n                            EVENT\n                        <\/div>\n\n\n                        <h3 id=\"bjceNextTitle\">\n                            CONNECTING TO THE BJC CALENDAR\u2026\n                        <\/h3>\n\n\n                        <div class=\"bjce-next-meta\">\n\n                            <span id=\"bjceNextDate\">\n                                LIVE EVENT INFORMATION\n                            <\/span>\n\n                            <span id=\"bjceNextVenue\">\n                                BRITISH JUDO COUNCIL\n                            <\/span>\n\n                        <\/div>\n\n\n                        <p id=\"bjceNextDescription\">\n                            Current event information is being\n                            retrieved from the official British\n                            Judo Council calendar.\n                        <\/p>\n\n                    <\/div>\n\n\n\n                    <div class=\"bjce-next-action\">\n\n                        <a\n                            class=\"bjce-round-link\"\n                            id=\"bjceNextLink\"\n                            href=\"https:\/\/britishjudocouncil.org\/events\"\n                            target=\"_blank\"\n                            rel=\"noopener noreferrer\"\n                            aria-label=\"View event on the British Judo Council website\"\n                        >\n                            <span>\n                                VIEW<br>\n                                EVENT\n                            <\/span>\n\n                            <b>\u2197<\/b>\n                        <\/a>\n\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n\n\n            <!-- ==================================================\n                 SEARCH + YEAR\n            =================================================== -->\n\n            <div class=\"bjce-tools\">\n\n\n                <div class=\"bjce-search\">\n\n                    <span\n                        class=\"bjce-search-icon\"\n                        aria-hidden=\"true\"\n                    >\n                        \u2315\n                    <\/span>\n\n\n                    <label\n                        class=\"bjce-sr-only\"\n                        for=\"bjceSearch\"\n                    >\n                        Search BJC events\n                    <\/label>\n\n\n                    <input\n                        id=\"bjceSearch\"\n                        type=\"search\"\n                        placeholder=\"SEARCH EVENTS\"\n                        autocomplete=\"off\"\n                    >\n\n\n                    <button\n                        id=\"bjceSearchClear\"\n                        class=\"bjce-search-clear\"\n                        type=\"button\"\n                        aria-label=\"Clear event search\"\n                    >\n                        \u00d7\n                    <\/button>\n\n                <\/div>\n\n\n\n                <div\n                    class=\"bjce-year-jump\"\n                    aria-label=\"Filter events by year\"\n                >\n\n                    <span>YEAR<\/span>\n\n                    <button\n                        class=\"bjce-year-button is-active\"\n                        type=\"button\"\n                        data-year=\"all\"\n                    >\n                        ALL\n                    <\/button>\n\n                    <!--\n                        Live JavaScript replaces\/adds year\n                        buttons automatically.\n                    -->\n\n                <\/div>\n\n            <\/div>\n\n\n\n            <!-- ==================================================\n                 CATEGORY FILTERS\n            =================================================== -->\n\n            <div\n                class=\"bjce-filter-bar\"\n                aria-label=\"Filter events by category\"\n            >\n\n                <button\n                    class=\"bjce-filter is-active\"\n                    type=\"button\"\n                    data-filter=\"all\"\n                >\n                    <span>ALL<\/span>\n                    <b id=\"bjceCountAll\">0<\/b>\n                <\/button>\n\n\n                <button\n                    class=\"bjce-filter\"\n                    type=\"button\"\n                    data-filter=\"competition\"\n                >\n                    <span>COMPETITIONS<\/span>\n                    <b id=\"bjceCountCompetition\">0<\/b>\n                <\/button>\n\n\n                <button\n                    class=\"bjce-filter\"\n                    type=\"button\"\n                    data-filter=\"course\"\n                >\n                    <span>COURSES<\/span>\n                    <b id=\"bjceCountCourse\">0<\/b>\n                <\/button>\n\n\n                <button\n                    class=\"bjce-filter\"\n                    type=\"button\"\n                    data-filter=\"grading\"\n                >\n                    <span>GRADINGS<\/span>\n                    <b id=\"bjceCountGrading\">0<\/b>\n                <\/button>\n\n\n                <button\n                    class=\"bjce-filter\"\n                    type=\"button\"\n                    data-filter=\"other\"\n                >\n                    <span>OTHER<\/span>\n                    <b id=\"bjceCountOther\">0<\/b>\n                <\/button>\n\n            <\/div>\n\n\n\n            <!-- ==================================================\n                 RESULTS INFORMATION\n            =================================================== -->\n\n            <div class=\"bjce-results-bar\">\n\n                <div>\n\n                    SHOWING\n\n                    <strong id=\"bjceShowingCount\">\n                        0\n                    <\/strong>\n\n                    EVENTS\n\n                <\/div>\n\n\n                <button\n                    id=\"bjceResetFilters\"\n                    type=\"button\"\n                >\n                    RESET FILTERS\n                <\/button>\n\n            <\/div>\n\n\n\n            <!-- ==================================================\n                 LIVE EVENT TIMELINE\n\n                 IMPORTANT:\n                 No fake event cards are written here.\n                 JavaScript creates the current events.\n            =================================================== -->\n\n            <div\n                class=\"bjce-timeline\"\n                id=\"bjceEventTimeline\"\n                aria-live=\"polite\"\n            >\n\n                <div\n                    style=\"\n                        padding:70px 0;\n                        text-align:center;\n                        font-size:10px;\n                        font-weight:900;\n                        letter-spacing:.18em;\n                    \"\n                >\n                    CONNECTING TO BJC CALENDAR\u2026\n                <\/div>\n\n            <\/div>\n\n\n\n            <!-- ==================================================\n                 EMPTY SEARCH\/FILTER STATE\n            =================================================== -->\n\n            <div\n                class=\"bjce-empty\"\n                id=\"bjceEmpty\"\n            >\n\n                <div\n                    class=\"bjce-empty-mark\"\n                    aria-hidden=\"true\"\n                >\n                    \u67d4\n                <\/div>\n\n                <h3>\n                    NO MATCHING EVENTS.\n                <\/h3>\n\n                <p>\n                    Try another category, year or search term.\n                <\/p>\n\n                <button\n                    id=\"bjceEmptyReset\"\n                    type=\"button\"\n                >\n                    SHOW ALL EVENTS\n                <\/button>\n\n            <\/div>\n\n\n\n            <!-- ==================================================\n                 LIVE DATA STATUS\n            =================================================== -->\n\n            <div\n                class=\"bjce-data-status\"\n                id=\"bjceDataStatus\"\n            >\n\n                <div class=\"bjce-data-status-left\">\n\n                    <span class=\"bjce-status-dot\"><\/span>\n\n                    <span id=\"bjceDataMessage\">\n                        CONNECTING TO THE OFFICIAL BJC CALENDAR\u2026\n                    <\/span>\n\n                <\/div>\n\n\n                <a\n                    href=\"https:\/\/britishjudocouncil.org\/events\"\n                    target=\"_blank\"\n                    rel=\"noopener noreferrer\"\n                >\n                    OFFICIAL BJC CALENDAR \u2197\n                <\/a>\n\n            <\/div>\n\n        <\/div>\n\n    <\/section>\n\n\n\n    <!-- ========================================================\n         EVENT PATHWAYS\n    ========================================================= -->\n\n    <section class=\"bjce-pathways\">\n\n        <div class=\"bjce-container\">\n\n\n            <div class=\"bjce-pathway-heading\">\n\n                <div class=\"bjce-section-label\">\n                    OPPORTUNITIES\n                <\/div>\n\n                <h2>\n                    WHERE WILL<br>\n                    JUDO TAKE YOU?\n                <\/h2>\n\n            <\/div>\n\n\n\n            <div class=\"bjce-pathway-grid\">\n\n\n                <article>\n\n                    <span class=\"bjce-pathway-number\">\n                        01\n                    <\/span>\n\n                    <div class=\"bjce-pathway-line\"><\/div>\n\n                    <h3>\n                        COMPETE.\n                    <\/h3>\n\n                    <p>\n                        Put your training into practice at BJC\n                        competitions and championships.\n                    <\/p>\n\n                <\/article>\n\n\n\n                <article>\n\n                    <span class=\"bjce-pathway-number\">\n                        02\n                    <\/span>\n\n                    <div class=\"bjce-pathway-line\"><\/div>\n\n                    <h3>\n                        LEARN.\n                    <\/h3>\n\n                    <p>\n                        Develop your judo through courses,\n                        seminars, coaching and squad training.\n                    <\/p>\n\n                <\/article>\n\n\n\n                <article>\n\n                    <span class=\"bjce-pathway-number\">\n                        03\n                    <\/span>\n\n                    <div class=\"bjce-pathway-line\"><\/div>\n\n                    <h3>\n                        PROGRESS.\n                    <\/h3>\n\n                    <p>\n                        Take the next step through gradings,\n                        development opportunities and experience.\n                    <\/p>\n\n                <\/article>\n\n\n            <\/div>\n\n        <\/div>\n\n    <\/section>\n\n\n\n    <!-- ========================================================\n         OFFICIAL SOURCE\n    ========================================================= -->\n\n    <section class=\"bjce-source\">\n\n        <div\n            class=\"bjce-source-kanji\"\n            aria-hidden=\"true\"\n        >\n            \u67d4\n        <\/div>\n\n\n        <div class=\"bjce-container bjce-source-grid\">\n\n\n            <div class=\"bjce-source-label\">\n\n                <span>\n                    OFFICIAL SOURCE\n                <\/span>\n\n                <strong>\n                    BRITISH JUDO COUNCIL\n                <\/strong>\n\n            <\/div>\n\n\n\n            <div class=\"bjce-source-copy\">\n\n                <p>\n                    Event information is sourced from the British\n                    Judo Council. Always check the official event\n                    listing before travelling, entering or making\n                    arrangements.\n                <\/p>\n\n            <\/div>\n\n\n\n            <div class=\"bjce-source-action\">\n\n                <a\n                    href=\"https:\/\/britishjudocouncil.org\/events\"\n                    target=\"_blank\"\n                    rel=\"noopener noreferrer\"\n                >\n                    VIEW FULL BJC CALENDAR\n                    <span>\u2197<\/span>\n                <\/a>\n\n            <\/div>\n\n        <\/div>\n\n    <\/section>\n\n\n\n    <!-- ========================================================\n         CTA\n    ========================================================= -->\n\n    <section class=\"bjce-cta\">\n\n        <div class=\"bjce-cta-grid\"><\/div>\n\n        <div\n            class=\"bjce-cta-kanji\"\n            aria-hidden=\"true\"\n        >\n            \u67d4\u9053\n        <\/div>\n\n\n        <div class=\"bjce-container bjce-cta-inner\">\n\n            <div>\n\n                <div\n                    class=\"bjce-section-label bjce-section-label-light\"\n                >\n                    BARNET JUDO CLUB\n                <\/div>\n\n\n                <h2>\n                    TRAIN.<br>\n                    LEARN.<br>\n                    <span>PROGRESS.<\/span>\n                <\/h2>\n\n            <\/div>\n\n\n            <div>\n\n                <p>\n                    Interested in joining Barnet Judo Club?\n                    Come and experience a session and discover\n                    where your judo can take you.\n                <\/p>\n\n\n                <a\n                    class=\"bjce-button bjce-button-dark\"\n                    href=\"\/index.php\/contact\/\"\n                >\n                    CONTACT THE CLUB\n                    <span>\u2197<\/span>\n                <\/a>\n\n            <\/div>\n\n        <\/div>\n\n    <\/section>\n\n\n\n    <!-- ========================================================\n         FOOTER\n    ========================================================= -->\n\n    <footer class=\"bjce-footer\">\n\n        <div class=\"bjce-container\">\n\n\n            <div class=\"bjce-footer-top\">\n\n\n                <div class=\"bjce-footer-brand\">\n\n                    <img decoding=\"async\"\n                        data-src=\"https:\/\/barnetjudo.co.uk\/wp-content\/uploads\/2020\/07\/cropped-BarnetJudoClubLogo-1.png\"\n                        alt=\"\"\n                     src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 512px; --smush-placeholder-aspect-ratio: 512\/512;\">\n\n                    <div>\n                        <strong>\n                            BARNET\n                        <\/strong>\n\n                        <span>\n                            JUDO CLUB\n                        <\/span>\n                    <\/div>\n\n                <\/div>\n\n\n\n                <div class=\"bjce-footer-message\">\n\n                    <strong>\n                        MORE THAN A SPORT.\n                    <\/strong>\n\n                    <span>\n                        A PLACE TO TRAIN, LEARN AND PROGRESS.\n                    <\/span>\n\n                <\/div>\n\n            <\/div>\n\n\n\n            <div class=\"bjce-footer-grid\">\n\n\n                <div class=\"bjce-footer-column\">\n\n                    <span>NAVIGATE<\/span>\n\n                    <a href=\"\/\">HOME<\/a>\n                    <a href=\"\/index.php\/about\/\">ABOUT<\/a>\n                    <a href=\"\/index.php\/firstvisit\/\">FIRST VISIT<\/a>\n                    <a href=\"\/index.php\/coaches\/\">COACHES<\/a>\n                    <a href=\"\/index.php\/judoka\/\">JUDOKA<\/a>\n                    <a href=\"\/index.php\/bjc-events\/\">EVENTS<\/a>\n\n                <\/div>\n\n\n\n                <div class=\"bjce-footer-column\">\n\n                    <span>EVENTS<\/span>\n\n                    <a\n                        href=\"https:\/\/britishjudocouncil.org\/events\"\n                        target=\"_blank\"\n                        rel=\"noopener noreferrer\"\n                    >\n                        BJC CALENDAR \u2197\n                    <\/a>\n\n                    <a href=\"\/index.php\/contact\/\">\n                        CONTACT US\n                    <\/a>\n\n                <\/div>\n\n\n\n                <div\n                    class=\"bjce-footer-column bjce-footer-location\"\n                >\n\n                    <span>CLUB<\/span>\n\n                    <strong>\n                        BARNET JUDO CLUB\n                    <\/strong>\n\n                    <p>\n                        NORTH LONDON\n                    <\/p>\n\n                <\/div>\n\n            <\/div>\n\n\n\n            <div class=\"bjce-footer-bottom\">\n\n                <span>\n                    \u00a9 <b id=\"bjceCopyrightYear\"><\/b>\n                    BARNET JUDO CLUB\n                <\/span>\n\n                <span>\n                    TRAIN \u00b7 LEARN \u00b7 PROGRESS\n                <\/span>\n\n            <\/div>\n\n        <\/div>\n\n    <\/footer>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>BARNET JUDO CLUB ABOUT FIRST VISIT COACHES JUDOKA EVENTS CONTACT \u2197 ABOUT FIRST VISIT COACHES JUDOKA EVENTS CONTACT \u2197 \u67d4\u9053 EVENTS BARNET \u00b7 NORTH LONDON WHAT\u2019S HAPPENING. Competitions, courses, gradings [&hellip;]<\/p>\n<div class=\"btn-wrapper\"> <a class=\"btn-excerpt read-more\" href=\"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/\"> <span class=\"screen-reader-text\">Events<\/span> Read More<\/a><\/div>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-798","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Events - Barnet Judo Club<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Events - Barnet Judo Club\" \/>\n<meta property=\"og:description\" content=\"BARNET JUDO CLUB ABOUT FIRST VISIT COACHES JUDOKA EVENTS CONTACT \u2197 ABOUT FIRST VISIT COACHES JUDOKA EVENTS CONTACT \u2197 \u67d4\u9053 EVENTS BARNET \u00b7 NORTH LONDON WHAT\u2019S HAPPENING. Competitions, courses, gradings [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/\" \/>\n<meta property=\"og:site_name\" content=\"Barnet Judo Club\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/barnetjudoclub\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-04T20:43:18+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/index.php\\\/bjc-events\\\/\",\"url\":\"https:\\\/\\\/barnetjudo.co.uk\\\/index.php\\\/bjc-events\\\/\",\"name\":\"Events - Barnet Judo Club\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/#website\"},\"datePublished\":\"2026-10-04T20:01:24+00:00\",\"dateModified\":\"2026-10-04T20:43:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/index.php\\\/bjc-events\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/barnetjudo.co.uk\\\/index.php\\\/bjc-events\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/index.php\\\/bjc-events\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/barnetjudo.co.uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Events\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/#website\",\"url\":\"https:\\\/\\\/barnetjudo.co.uk\\\/\",\"name\":\"Barnet Judo Club\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/barnetjudo.co.uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/#organization\",\"name\":\"Barnet Judo Club\",\"url\":\"https:\\\/\\\/barnetjudo.co.uk\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/barnetjudo.co.uk\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/barnetjclogo.png\",\"contentUrl\":\"https:\\\/\\\/barnetjudo.co.uk\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/barnetjclogo.png\",\"width\":50,\"height\":65,\"caption\":\"Barnet Judo Club\"},\"image\":{\"@id\":\"https:\\\/\\\/barnetjudo.co.uk\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/barnetjudoclub\",\"https:\\\/\\\/www.instagram.com\\\/barnetjudoclub\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/barnetjudoclub\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCNH86uvIE5BvLtd_-C3NN9w\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Events - Barnet Judo Club","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/","og_locale":"en_GB","og_type":"article","og_title":"Events - Barnet Judo Club","og_description":"BARNET JUDO CLUB ABOUT FIRST VISIT COACHES JUDOKA EVENTS CONTACT \u2197 ABOUT FIRST VISIT COACHES JUDOKA EVENTS CONTACT \u2197 \u67d4\u9053 EVENTS BARNET \u00b7 NORTH LONDON WHAT\u2019S HAPPENING. Competitions, courses, gradings [&hellip;]","og_url":"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/","og_site_name":"Barnet Judo Club","article_publisher":"https:\/\/www.facebook.com\/barnetjudoclub","article_modified_time":"2026-10-04T20:43:18+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/","url":"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/","name":"Events - Barnet Judo Club","isPartOf":{"@id":"https:\/\/barnetjudo.co.uk\/#website"},"datePublished":"2026-10-04T20:01:24+00:00","dateModified":"2026-10-04T20:43:18+00:00","breadcrumb":{"@id":"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/barnetjudo.co.uk\/index.php\/bjc-events\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/barnetjudo.co.uk\/"},{"@type":"ListItem","position":2,"name":"Events"}]},{"@type":"WebSite","@id":"https:\/\/barnetjudo.co.uk\/#website","url":"https:\/\/barnetjudo.co.uk\/","name":"Barnet Judo Club","description":"","publisher":{"@id":"https:\/\/barnetjudo.co.uk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/barnetjudo.co.uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/barnetjudo.co.uk\/#organization","name":"Barnet Judo Club","url":"https:\/\/barnetjudo.co.uk\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/barnetjudo.co.uk\/#\/schema\/logo\/image\/","url":"https:\/\/barnetjudo.co.uk\/wp-content\/uploads\/2020\/07\/barnetjclogo.png","contentUrl":"https:\/\/barnetjudo.co.uk\/wp-content\/uploads\/2020\/07\/barnetjclogo.png","width":50,"height":65,"caption":"Barnet Judo Club"},"image":{"@id":"https:\/\/barnetjudo.co.uk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/barnetjudoclub","https:\/\/www.instagram.com\/barnetjudoclub\/","https:\/\/www.linkedin.com\/company\/barnetjudoclub\/","https:\/\/www.youtube.com\/channel\/UCNH86uvIE5BvLtd_-C3NN9w"]}]}},"_links":{"self":[{"href":"https:\/\/barnetjudo.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/barnetjudo.co.uk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/barnetjudo.co.uk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/barnetjudo.co.uk\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/barnetjudo.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=798"}],"version-history":[{"count":6,"href":"https:\/\/barnetjudo.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/798\/revisions"}],"predecessor-version":[{"id":806,"href":"https:\/\/barnetjudo.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/798\/revisions\/806"}],"wp:attachment":[{"href":"https:\/\/barnetjudo.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}