{"id":26245,"date":"2026-07-30T09:27:42","date_gmt":"2026-07-30T09:27:42","guid":{"rendered":"https:\/\/hkballet2.websitedevsystem.com\/engage\/ballet-360-tmp-zh-hans\/"},"modified":"2026-11-03T02:53:19","modified_gmt":"2026-11-03T02:53:19","slug":"ballet-360","status":"publish","type":"engage","link":"https:\/\/www.hkballet.com\/zh-hans\/engage\/ballet-360\/","title":{"rendered":"\u82ad\u857e360\u00b0"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"26245\" class=\"elementor elementor-26245 elementor-20944\" data-elementor-post-type=\"engage\">\n\t\t\t\t<div class=\"elementor-element elementor-element-319e713 e-con-full e-flex e-con e-parent\" data-id=\"319e713\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0794f8d elementor-widget elementor-widget-heading\" data-id=\"0794f8d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">\u82ad\u857e360\u00b0<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9bccc22 e-con-full e-flex e-con e-parent\" data-id=\"9bccc22\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e531e46 elementor-widget elementor-widget-hkb_breadcrumbs\" data-id=\"e531e46\" data-element_type=\"widget\" data-widget_type=\"hkb_breadcrumbs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<nav class=\"hkb-breadcrumbs\" aria-label=\"Breadcrumb\">\n\t\t\t<ol class=\"hkb-breadcrumbs__list\" itemscope itemtype=\"https:\/\/schema.org\/BreadcrumbList\">\n\t\t\t\t\t\t\t\t\t<li class=\"hkb-breadcrumbs__item\" itemprop=\"itemListElement\" itemscope itemtype=\"https:\/\/schema.org\/ListItem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a itemprop=\"item\" href=\"\/\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span itemprop=\"name\">\u9996\u9875<\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t<meta itemprop=\"position\" content=\"1\">\n\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"hkb-breadcrumbs__item\" itemprop=\"itemListElement\" itemscope itemtype=\"https:\/\/schema.org\/ListItem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a itemprop=\"item\" href=\"https:\/\/www.hkballet.com\/zh-hans\/engage\/\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span itemprop=\"name\">\u6559\u80b2\u53ca\u793e\u533a\u6d3b\u52a8<\/span>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t<meta itemprop=\"position\" content=\"2\">\n\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"hkb-breadcrumbs__item\" itemprop=\"itemListElement\" itemscope itemtype=\"https:\/\/schema.org\/ListItem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"hkb-breadcrumbs__current\" itemprop=\"name\"\n\t\t\t\t\t\t\t\t aria-current=\"page\">\u5f52\u6863<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<meta itemprop=\"position\" content=\"3\">\n\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/ol>\n\t\t<\/nav>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-461d5cd e-flex e-con-boxed e-con e-parent\" data-id=\"461d5cd\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e979912 gotham-regular elementor-widget elementor-widget-text-editor\" data-id=\"e979912\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u82ad\u857e360\u00b0\u4e3a\u89c2\u4f17\u5e26\u6765\u96be\u5f97\u7684\u5e55\u540e\u4f53\u9a8c\uff0c\u9080\u8bf7\u5927\u5bb6\u8d70\u8fdb\u821e\u8e48\u6392\u7ec3\u5ba4\uff0c\u8fd1\u8ddd\u79bb\u6b23\u8d4f\u6e2f\u82ad\u821e\u8005\u4e3a\u5373\u5c06\u4e0a\u6f14\u7684\u4f5c\u54c1\u6240\u505a\u7684\u6392\u7ec3\uff0c\u540c\u65f6\u8046\u542c\u5236\u4f5c\u80cc\u540e\u7684\u7cbe\u5f69\u6545\u4e8b\uff1b\u8fd9\u573a\u6d3b\u52a8\u8ba9\u60a8\u5728\u6392\u7ec3\u8fc7\u7a0b\u4e2d\u611f\u53d7\u821e\u8e48\u7684\u827a\u672f\u9b45\u529b\u3001\u821e\u8005\u7684\u4e13\u6ce8\u6295\u5165\uff0c\u4ee5\u53ca\u521b\u4f5c\u8fc7\u7a0b\u4e2d\u7684\u7075\u611f\u4e0e\u5386\u53f2\uff0c\u4f7f\u6392\u7ec3\u672c\u8eab\u6210\u4e3a\u4e00\u6bb5\u63a2\u7d22\u4e0e\u8fde\u7ed3\u7684\u65c5\u7a0b\u3002 <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b245ea e-con-full e-flex e-con e-parent\" data-id=\"5b245ea\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9049f5f e-con-full e-flex e-con e-parent\" data-id=\"9049f5f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33e659c elementor-widget__width-initial elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"33e659c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u56fe\u7247\u96c6<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9b0c657 e-con-full e-flex e-con e-child\" data-id=\"9b0c657\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-808fef8 engage-gallery elementor-widget elementor-widget-hkb_gallery\" data-id=\"808fef8\" data-element_type=\"widget\" data-widget_type=\"hkb_gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section id=\"gallery-widget-808fef8\" class=\"gallery-section gallery-section--active-caption\" style=\"--gallery-slide-height-desktop:var(--hkb-gallery-image-height,70vh);--gallery-slide-height-mobile:var(--hkb-gallery-image-height,30vh);\">\n  <style>\n    \/* Caption width follows its rendered image, including mobile theme overrides. *\/\n    #gallery-widget-808fef8 .gallery-slide__text {\n      width: var(--gallery-slide-image-width, 100%) !important;\n      max-width: var(--gallery-slide-image-width, 100%) !important;\n      min-width: 0 !important;\n      box-sizing: border-box !important;\n      white-space: normal !important;\n      overflow-wrap: anywhere !important;\n      word-break: break-word !important;\n    }\n  <\/style>\n        <div class=\"gallery-viewport\">\n    <div class=\"gallery-swiper swiper\">\n      <div class=\"swiper-wrapper\">\n                                                          <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"0\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/1_.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/1_.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"1\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/2_DSC_1516-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/2_DSC_1516-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"2\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/4_DSC_0564_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/4_DSC_0564_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"3\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/5_DSC_7889_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/5_DSC_7889_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"4\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/6_IMG_7752-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/6_IMG_7752-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"5\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/7_DSC_8226_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/7_DSC_8226_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"6\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/8_IMG_7801_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/8_IMG_7801_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"7\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/9_IMG_7826_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/9_IMG_7826_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"8\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/10_DSC_0234_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/10_DSC_0234_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"9\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/11_DSC_0267_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/11_DSC_0267_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"10\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/12_DSC_0250_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/12_DSC_0250_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"11\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/13_DSC_0637_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/13_DSC_0637_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"12\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/14_DSC_2219_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/14_DSC_2219_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"13\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/15_DSC_1121-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/15_DSC_1121-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"14\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/16_DSC_0844_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/16_DSC_0844_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"15\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/17_DSC_9721_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/17_DSC_9721_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"16\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/18_IMG_7917_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/18_IMG_7917_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                        <div class=\"swiper-slide gallery-slide\" data-gallery-index=\"17\" data-gallery-original=\"1\" data-media-type=\"image\" data-media-url=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/19_DSC_2557_edited-scaled.jpg\" data-media-mime=\"image\/jpeg\" data-media-alt=\"\" data-credit=\"\" data-description=\"\">\n                <span class=\"gallery-slide__media\">\n                                      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/07\/19_DSC_2557_edited-scaled.jpg\" alt=\"\" \/>\n                                  <\/span>\n                              <\/div>\n                                    <\/div>\n    <\/div>\n\n        <div class=\"gallery-nav hidden-xs\">\n      <button class=\"gallery-btn custom-button-btn gallery-prev\" aria-label=\"\u4e0a\u4e00\u9879\">\n      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/themes\/hello-elementor-child\/assets\/img\/left_icon.svg\" alt=\"\">\n      <\/button>\n      <button class=\"gallery-btn custom-button-btn gallery-next\" aria-label=\"\u4e0b\u4e00\u9879\">\n      <img decoding=\"async\" src=\"https:\/\/www.hkballet.com\/wp-content\/themes\/hello-elementor-child\/assets\/img\/right_icon.svg\" alt=\"\">\n      <\/button>\n    <\/div>\n      <\/div>\n\n  <div class=\"gallery-footer\">\n    <span class=\"gallery-credit\"><\/span>\n\n  <\/div>\n\n    <div class=\"gallery-dot-wrap hidden-sm\" aria-label=\"\u56fe\u7247\u5bfc\u822a\"><\/div>\n  \n  <div class=\"gallery-lightbox\" aria-hidden=\"true\">\n    <div class=\"gallery-lightbox__panel\" role=\"dialog\" aria-modal=\"true\" aria-label=\"\u56fe\u7247\u9884\u89c8\">\n      <button class=\"gallery-lightbox__close\" type=\"button\" aria-label=\"\u5173\u95ed\">\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n          <path d=\"M15.9939 15.2322L15.2323 15.9938L0.000153744 0.761608L0.761762 0L15.9939 15.2322Z\" fill=\"white\" \/>\n          <path d=\"M0.761608 16L0 15.2384L15.2322 0.00623141L15.9938 0.76784L0.761608 16Z\" fill=\"white\" \/>\n        <\/svg>\n      <\/button>\n      <div class=\"gallery-lightbox__panel_content\">\n        <img class=\"gallery-lightbox__image\" alt=\"\u56fe\u7247\" \/>\n        <video class=\"gallery-lightbox__video\" controls playsinline preload=\"metadata\" style=\"display:none;\"><\/video>\n        <div class=\"gallery-lightbox__meta\" data-lenis-prevent>\n          <div class=\"gallery-lightbox__meta-inner\"><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"gallery-lightbox__controls\">\n        <button class=\"gallery-lightbox__arrow gallery-lightbox-prev\" type=\"button\" aria-label=\"\u4e0a\u4e00\u5f20\u56fe\u7247\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n            <g clip-path=\"url(#gallery-widget-808fef8-clip-prev)\">\n              <path d=\"M20.4199 9.33594L20.4199 10.6689L0.419922 10.6689L0.419922 9.33594L20.4199 9.33594Z\" fill=\"white\" \/>\n              <path d=\"M0.677548 9.25334C4.13214 9.73162 7.33323 12.3276 9.14516 16.5683L8.07531 17.3649C6.41054 13.4686 3.49103 11.1339 0.405437 10.7067L0.677548 9.25334Z\" fill=\"white\" \/>\n              <path d=\"M0.677548 10.7467C4.13214 10.2684 7.33323 7.67236 9.14516 3.4317L8.07531 2.63514C6.41054 6.53138 3.49103 8.86608 0.405437 9.29327L0.677548 10.7467Z\" fill=\"white\" \/>\n            <\/g>\n            <defs>\n              <clipPath id=\"gallery-widget-808fef8-clip-prev\">\n                <rect width=\"20\" height=\"20\" fill=\"white\" \/>\n              <\/clipPath>\n            <\/defs>\n          <\/svg>\n        <\/button>\n        <div class=\"gallery-lightbox__progress-wrap\" aria-hidden=\"true\">\n          <span><\/span>\n        <\/div>\n        <button class=\"gallery-lightbox__arrow gallery-lightbox-next\" type=\"button\" aria-label=\"\u4e0b\u4e00\u5f20\u56fe\u7247\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n            <g clip-path=\"url(#gallery-widget-808fef8-clip-next)\">\n              <path d=\"M0 10.6641V9.33105L20 9.33105V10.6641L0 10.6641Z\" fill=\"white\" \/>\n              <path d=\"M19.7424 10.7467C16.2878 10.2684 13.0867 7.67237 11.2748 3.4317L12.3446 2.63514C14.0094 6.53138 16.9289 8.86608 20.0145 9.29327L19.7424 10.7467Z\" fill=\"white\" \/>\n              <path d=\"M19.7424 9.25334C16.2878 9.73163 13.0867 12.3276 11.2748 16.5683L12.3446 17.3649C14.0094 13.4686 16.9289 11.1339 20.0145 10.7067L19.7424 9.25334Z\" fill=\"white\" \/>\n            <\/g>\n            <defs>\n              <clipPath id=\"gallery-widget-808fef8-clip-next\">\n                <rect width=\"20\" height=\"20\" fill=\"white\" \/>\n              <\/clipPath>\n            <\/defs>\n          <\/svg>\n        <\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function() {\n      var section = document.currentScript && document.currentScript.closest('.gallery-section');\n      if (!section) section = document.getElementById(\"gallery-widget-808fef8\");\n      if (!section) return;\n      var gallerySwiper = null;\n      var slides = [];\n      var slideCount = 0;\n      var carouselSlideCount = 0;\n      var currentIndex = 0;\n      var captionFrame = 0;\n      var isSingle = false;\n      \/\/ Ordered list (smallest device first) of\n      \/\/ { name, mode:'auto'|'custom'|'height', spv, height, media, min }, or null.\n      \/\/ The ranges come from the site's active Elementor breakpoints, so the\n      \/\/ same media query decides here and in the CSS block above.\n      var slidesConfig = null;\n      var swiperEl = section.querySelector(\".gallery-swiper\");\n\n      \/\/ The device entry matching the current viewport.\n      function currentConf() {\n        if (!slidesConfig || !slidesConfig.length) return null;\n        for (var i = 0; i < slidesConfig.length; i++) {\n          if (window.matchMedia(slidesConfig[i].media).matches) {\n            return slidesConfig[i];\n          }\n        }\n        return slidesConfig[slidesConfig.length - 1];\n      }\n\n      \/\/ Pixel-height mode uses proportional widths, independent of card counts.\n      function isCustomMode() {\n        var conf = currentConf();\n        return !!(conf && conf.mode === 'custom');\n      }\n\n      \/\/ Swiper breakpoint entry for one device.\n      function bpConf(conf) {\n        if (conf && conf.mode === 'custom') {\n          return { slidesPerView: conf.spv, spaceBetween: 4 };\n        }\n        return { slidesPerView: 'auto', spaceBetween: 4 };\n      }\n      var dotWrap = section.querySelector(\".gallery-dot-wrap\");\n      var credit = section.querySelector(\".gallery-credit\");\n      var creditTimer = 0;\n      var lightbox = section.querySelector(\".gallery-lightbox\");\n      var lightboxClose = section.querySelector(\".gallery-lightbox__close\");\n      var lightboxImage = section.querySelector(\".gallery-lightbox__image\");\n      var lightboxVideo = section.querySelector(\".gallery-lightbox__video\");\n      var lightboxMeta = section.querySelector(\".gallery-lightbox__meta\");\n      var lightboxMetaInner = section.querySelector(\".gallery-lightbox__meta-inner\");\n      var lightboxProgress = section.querySelector(\".gallery-lightbox__progress-wrap span\");\n      var lightboxPrev = section.querySelector(\".gallery-lightbox-prev\");\n      var lightboxNext = section.querySelector(\".gallery-lightbox-next\");\n      var galleryPrev = section.querySelector(\".gallery-prev\");\n      var galleryNext = section.querySelector(\".gallery-next\");\n      var activeLightboxIndex = 0;\n\n      function syncSlides() {\n        slides = Array.prototype.slice.call(section.querySelectorAll('.gallery-slide[data-gallery-original=\"1\"]'));\n        slideCount = slides.length;\n        carouselSlideCount = section.querySelectorAll(\".gallery-slide\").length;\n      }\n\n      function getSlideMedia(slide) {\n        return slide ? slide.querySelector(\"img, video\") : null;\n      }\n\n      function getLightboxMedia() {\n        if (lightboxVideo && lightboxVideo.style.display !== \"none\") {\n          return lightboxVideo;\n        }\n        return lightboxImage;\n      }\n\n      function stopLightboxVideo() {\n        if (!lightboxVideo) return;\n        lightboxVideo.pause();\n        lightboxVideo.removeAttribute(\"src\");\n        lightboxVideo.load();\n      }\n\n      function updateCaptionWidths() {\n        section.querySelectorAll('.gallery-slide').forEach(function(slide) {\n          var caption = slide.querySelector('.gallery-slide__text');\n          var image = getSlideMedia(slide);\n          if (!caption || !image) return;\n          var width = image.getBoundingClientRect().width;\n          if (width > 0) {\n            \/\/ Keep this value on the caption itself so fixed-card widths are\n            \/\/ measured after Swiper has finished sizing the slide.\n            caption.style.setProperty('--gallery-slide-image-width', width + 'px');\n          }\n        });\n      }\n\n      function updateGallerySize() {\n        if (gallerySwiper) gallerySwiper.update();\n        updateCaptionWidths();\n        if (gallerySwiper && gallerySwiper.updateAutoHeight) {\n          gallerySwiper.updateAutoHeight(0);\n        }\n        scheduleCaptionWidths();\n      }\n\n      function scheduleCaptionWidths() {\n        window.cancelAnimationFrame(captionFrame);\n        captionFrame = window.requestAnimationFrame(function() {\n          if (!section.isConnected) return;\n          updateCaptionWidths();\n          if (gallerySwiper && gallerySwiper.updateAutoHeight) {\n            gallerySwiper.updateAutoHeight(0);\n          }\n        });\n      }\n\n      function updateSlideWidths() {\n        if (isSingle) {\n          updateCaptionWidths();\n          return;\n        }\n        \/\/ Custom mode: Swiper computes slide widths from slidesPerView, so clear\n        \/\/ any inline widths a previous 'auto' breakpoint may have set and let\n        \/\/ Swiper size the slides.\n        if (isCustomMode()) {\n          Array.prototype.slice.call(section.querySelectorAll(\".gallery-slide\")).forEach(function(slide) {\n            slide.style.width = \"\";\n            slide.style.removeProperty(\"--gallery-slide-image-width\");\n          });\n          updateGallerySize();\n          return;\n        }\n\n        var isMobile = window.matchMedia(\"(max-width: 768px)\").matches;\n        var conf = currentConf();\n        var hasPixelHeight = !!(conf && conf.mode === 'height');\n        var gallerySlides = Array.prototype.slice.call(section.querySelectorAll(\".gallery-slide\"));\n\n        gallerySlides.forEach(function(slide) {\n          var image = getSlideMedia(slide);\n\n          if ((isMobile && !hasPixelHeight) || !image) {\n            slide.style.width = \"\";\n            slide.style.removeProperty(\"--gallery-slide-image-width\");\n            return;\n          }\n\n          var imageWidth = image.getBoundingClientRect().width;\n          if (imageWidth > 0) {\n            slide.style.width = imageWidth + \"px\";\n            slide.style.setProperty(\"--gallery-slide-image-width\", imageWidth + \"px\");\n          }\n        });\n\n        updateGallerySize();\n      }\n\n      \/\/ Captions come from a rich-text field and may carry <br\/>. Escaping the\n      \/\/ whole string first, then re-enabling only the line breaks, keeps the\n      \/\/ markup out of the visible text without opening an HTML injection hole.\n      function setCaptionHtml(el, raw) {\n        el.textContent = raw;\n        if (el.innerHTML.indexOf(\"&lt;br\") !== -1) {\n          el.innerHTML = el.innerHTML.replace(\/&lt;br\\s*\\\/?&gt;\/gi, \"<br>\");\n        }\n      }\n\n      function updateCredit(index) {\n        if (!credit || !slides[index]) return;\n        var text = slides[index].getAttribute(\"data-credit\") || \"\";\n        window.clearTimeout(creditTimer);\n        credit.classList.add(\"is-transitioning\");\n        creditTimer = window.setTimeout(function() {\n          setCaptionHtml(credit, text);\n          credit.classList.remove(\"is-transitioning\");\n        }, 60);\n      }\n\n      function updateLightboxMetaWidth() {\n        var media = getLightboxMedia();\n        if (!lightbox || !media) return;\n        var imageWidth = media.getBoundingClientRect().width;\n        if (imageWidth > 0) {\n          lightbox.style.setProperty(\"--gallery-lightbox-image-width\", imageWidth + \"px\");\n        }\n      }\n\n      \/\/ Custom dots: slides are duplicated in the DOM to enable looping, so\n      \/\/ Swiper's built-in pagination would show one bullet per copy (e.g. 9\n      \/\/ dots for 3 images). Render one dot per original image instead.\n      function buildDots() {\n        if (!dotWrap) return;\n        dotWrap.innerHTML = \"\";\n        for (var i = 0; i < slideCount; i++) {\n          (function(target) {\n            var dot = document.createElement(\"button\");\n            dot.type = \"button\";\n            dot.className = \"swiper-pagination-bullet\";\n            dot.setAttribute(\"aria-label\", \"Go to slide \" + (target + 1));\n            dot.addEventListener(\"click\", function() {\n              if (gallerySwiper) gallerySwiper.slideToLoop(target);\n            });\n            dotWrap.appendChild(dot);\n          })(i);\n        }\n      }\n\n      function updateDots() {\n        if (!dotWrap) return;\n        var dots = dotWrap.children;\n        for (var i = 0; i < dots.length; i++) {\n          dots[i].classList.toggle(\"swiper-pagination-bullet-active\", i === currentIndex);\n        }\n      }\n\n      function setActiveIndex(index) {\n        if (!slideCount) return;\n        currentIndex = ((index % slideCount) + slideCount) % slideCount;\n        updateCredit(currentIndex);\n        updateDots();\n      }\n\n      function goToGalleryIndex(index) {\n        if (!gallerySwiper || !slideCount) return;\n        var targetIndex = ((index % slideCount) + slideCount) % slideCount;\n        if (typeof gallerySwiper.slideToLoop === \"function\") {\n          gallerySwiper.slideToLoop(targetIndex);\n        } else {\n          gallerySwiper.slideTo(targetIndex);\n        }\n        setActiveIndex(targetIndex);\n      }\n\n      function showNextGallerySlide(event) {\n        if (event) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n        goToGalleryIndex(currentIndex + 1);\n      }\n\n      function showPrevGallerySlide(event) {\n        if (event) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n        goToGalleryIndex(currentIndex - 1);\n      }\n\n      function openLightbox(index) {\n        activeLightboxIndex = index;\n        var slide = slides[index];\n        if (!slide || !lightbox || !lightboxImage || !lightboxMeta || !lightboxProgress) return;\n        var mediaType = slide.getAttribute(\"data-media-type\") || \"image\";\n        var mediaUrl = slide.getAttribute(\"data-media-url\") || \"\";\n        var mediaAlt = slide.getAttribute(\"data-media-alt\") || \"Gallery image\";\n        stopLightboxVideo();\n        if (mediaType === \"video\" && lightboxVideo) {\n          lightboxImage.style.display = \"none\";\n          lightboxImage.removeAttribute(\"src\");\n          lightboxVideo.style.display = \"\";\n          lightboxVideo.src = mediaUrl;\n          lightboxVideo.load();\n        } else {\n          lightboxImage.style.display = \"\";\n          if (lightboxVideo) lightboxVideo.style.display = \"none\";\n          lightboxImage.src = mediaUrl;\n          lightboxImage.alt = mediaAlt;\n        }\n        setCaptionHtml(lightboxMetaInner || lightboxMeta, slide.getAttribute(\"data-credit\") || \"\");\n        lightboxProgress.style.width = ((index + 1) \/ slideCount) * 100 + \"%\";\n        lightbox.classList.add(\"is-open\");\n        lightbox.setAttribute(\"aria-hidden\", \"false\");\n        if (mediaType !== \"video\" && lightboxImage.complete) {\n          updateLightboxMetaWidth();\n        }\n        window.requestAnimationFrame(updateLightboxMetaWidth);\n        document.documentElement.style.overflow = \"hidden\";\n        document.body.style.overflow = \"hidden\";\n      }\n\n      function closeLightbox() {\n        if (!lightbox) return;\n        lightbox.classList.remove(\"is-open\");\n        lightbox.setAttribute(\"aria-hidden\", \"true\");\n        stopLightboxVideo();\n        document.documentElement.style.overflow = \"\";\n        document.body.style.overflow = \"\";\n      }\n\n      function showLightbox(index) {\n        if (!slideCount) return;\n        var nextIndex = ((index % slideCount) + slideCount) % slideCount;\n        openLightbox(nextIndex);\n      }\n\n      function showNextLightbox() {\n        showLightbox(activeLightboxIndex + 1);\n      }\n\n      function showPrevLightbox() {\n        showLightbox(activeLightboxIndex - 1);\n      }\n\n      function initGallerySwiper() {\n        if (!swiperEl || gallerySwiper) return;\n        syncSlides();\n        if (!slideCount) return;\n        if (isSingle) {\n          updateSlideWidths();\n          setActiveIndex(0);\n          return;\n        }\n        if (typeof Swiper === 'undefined') return;\n        buildDots();\n        updateSlideWidths();\n\n        \/\/ One Swiper breakpoint per active Elementor device, keyed by its\n        \/\/ min-width. Each device is auto or custom independently.\n        var breakpoints;\n        if (slidesConfig) {\n          breakpoints = {};\n          slidesConfig.forEach(function(conf) {\n            breakpoints[conf.min] = bpConf(conf);\n          });\n        } else {\n          breakpoints = {\n            0: {\n              slidesPerView: 1,\n              spaceBetween: 4,\n            },\n            769: {\n              slidesPerView: 'auto',\n              spaceBetween: 4,\n            },\n          };\n        }\n\n        gallerySwiper = new Swiper(swiperEl, {\n          slidesPerView: slidesConfig ? bpConf(currentConf()).slidesPerView : (window.innerWidth <= 768 ? 1 : 'auto'),\n          spaceBetween: 20,\n          autoHeight: true,\n          rewind: true,\n          loop: carouselSlideCount > 1,\n          loopAdditionalSlides: carouselSlideCount,\n          loopedSlides: carouselSlideCount,\n          watchOverflow: false,\n          breakpoints: breakpoints,\n          on: {\n            breakpoint: scheduleCaptionWidths,\n            loopFix: scheduleCaptionWidths,\n            resize: scheduleCaptionWidths,\n            init: function() {\n              updateSlideWidths();\n              setActiveIndex(this.realIndex || 0);\n            },\n            slideChange: function() {\n              setActiveIndex(this.realIndex || 0);\n            }\n          }\n        });\n        updateGallerySize();\n      }\n\n      if (swiperEl) {\n      swiperEl.addEventListener('click', function(event) {\n        var slide = event.target.closest('.gallery-slide');\n        if (!slide) return;\n        var index = parseInt(slide.getAttribute('data-gallery-index'), 10);\n        if (!isNaN(index)) {\n          showLightbox(index);\n        }\n      });\n      }\n\n      function onGalleryMediaLoad(event) {\n        var media = event.target;\n        if (!media.matches || !media.matches('.gallery-slide img, .gallery-slide video')) return;\n        if (mediaObserver) mediaObserver.observe(media);\n        updateSlideWidths();\n      }\n      \/\/ Capture loads from new loop slides too; cloned nodes do not retain\n      \/\/ listeners that were attached directly to the original media elements.\n      section.addEventListener('load', onGalleryMediaLoad, true);\n      section.addEventListener('loadedmetadata', onGalleryMediaLoad, true);\n\n      \/\/ Elementor controls and container resizing can change media dimensions\n      \/\/ without a window resize. Refresh caption widths after those changes too.\n      if (window.ResizeObserver) {\n        var sizeFrame = 0;\n        var mediaObserver = new ResizeObserver(function() {\n          window.cancelAnimationFrame(sizeFrame);\n          sizeFrame = window.requestAnimationFrame(function() {\n            if (!section.isConnected) {\n              mediaObserver.disconnect();\n              return;\n            }\n            updateSlideWidths();\n          });\n        });\n        section.querySelectorAll('.gallery-slide img, .gallery-slide video').forEach(function(media) {\n          mediaObserver.observe(media);\n        });\n      }\n\n      if (lightboxNext) lightboxNext.addEventListener('click', showNextLightbox);\n      if (lightboxPrev) lightboxPrev.addEventListener('click', showPrevLightbox);\n      if (galleryNext) galleryNext.addEventListener('click', showNextGallerySlide);\n      if (galleryPrev) galleryPrev.addEventListener('click', showPrevGallerySlide);\n      if (lightboxClose) lightboxClose.addEventListener('click', closeLightbox);\n      if (lightboxImage) lightboxImage.addEventListener('load', updateLightboxMetaWidth);\n      if (lightboxVideo) lightboxVideo.addEventListener('loadedmetadata', updateLightboxMetaWidth);\n      if (lightboxMeta) {\n        lightboxMeta.addEventListener('wheel', function(event) {\n          if (lightboxMeta.scrollHeight > lightboxMeta.clientHeight) {\n            event.stopPropagation();\n          }\n        }, { passive: true });\n\n        lightboxMeta.addEventListener('touchmove', function(event) {\n          if (lightboxMeta.scrollHeight > lightboxMeta.clientHeight) {\n            event.stopPropagation();\n          }\n        }, { passive: true });\n      }\n      if (lightbox) lightbox.addEventListener('click', function(event) {\n        if (event.target === lightbox) closeLightbox();\n      });\n\n      document.addEventListener('keydown', function(event) {\n        if (!lightbox || !lightbox.classList.contains(\"is-open\")) return;\n        if (event.key === \"Escape\" && lightbox.classList.contains(\"is-open\")) closeLightbox();\n        if (event.key === \"ArrowRight\" && lightbox.classList.contains(\"is-open\")) showNextLightbox();\n        if (event.key === \"ArrowLeft\" && lightbox.classList.contains(\"is-open\")) showPrevLightbox();\n      });\n\n      if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initGallerySwiper);\n      } else {\n        initGallerySwiper();\n      }\n\n      window.addEventListener('load', initGallerySwiper);\n      window.addEventListener('load', updateSlideWidths);\n      window.addEventListener('resize', function() {\n        updateSlideWidths();\n        updateLightboxMetaWidth();\n      });\n    })();\n  <\/script>\n<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-726ec9a5 e-con-full e-flex e-con e-parent\" data-id=\"726ec9a5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-399b8743 elementor-widget elementor-widget-hkb_past_events\" data-id=\"399b8743\" data-element_type=\"widget\" data-widget_type=\"hkb_past_events.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <style>\n            .hkb-past-events {\n                border-top: 0.5px solid #c8cad4;\n                border-bottom: 0.5px solid #c8cad4;\n                color: var(--clr-blue-100, #211650);\n            }\n\n            \/* Header row: title left, plus toggle right (HKB Accordion recipe). *\/\n            .hkb-pe-header {\n                display: flex;\n                align-items: center;\n                justify-content: space-between;\n                gap: 40px;\n                padding: 40px 0;\n                cursor: pointer;\n            }\n\n            .hkb-pe-header-title {\n                font-size: 20px;\n                font-weight: 400;\n                line-height: 26px;\n                letter-spacing: var(--heading-medium-letter-spacing, 0.25px);\n            }\n\n            .hkb-pe-toggle {\n                flex: 0 0 auto;\n                display: inline-flex;\n                align-items: center;\n                justify-content: center;\n                width: 20px;\n                height: 20px;\n                transition: transform 0.3s ease;\n            }\n\n            .hkb-past-events.is-open .hkb-pe-toggle {\n                transform: rotate(45deg);\n            }\n\n            .hkb-pe-body {\n                display: none;\n                padding: 0 0 60px;\n            }\n\n            .hkb-past-events.is-open .hkb-pe-body {\n                display: block;\n            }\n\n            .hkb-pe-list {\n                display: grid;\n                gap: 80px;\n            }\n\n            \/* Group heading \u2014 centered divider between term blocks. *\/\n            .hkb-pe-group-heading {\n                margin: 0;\n                text-align: center;\n                font-size: 26px;\n                line-height: 35px;\n                font-weight: 400;\n                color: var(--clr-blue-100, #211650);\n            }\n\n            \/* Event row: image left, content right, with an optional link. *\/\n            .hkb-pe-item {\n                display: grid;\n                grid-template-columns: 45fr 55fr;\n                gap: 68px;\n                align-items: start;\n                text-decoration: none;\n                color: var(--clr-blue-100, #211650);\n            }\n\n            \/* Image zoom in an overflow-hidden frame \u2014 same treatment as the\n               academy\/engage cards, triggered from anywhere in the row. *\/\n            .hkb-pe-media {\n                display: block;\n                overflow: hidden;\n                border-radius: 2px;\n                height: 100%;\n            }\n\n            .hkb-pe-media img {\n                display: block;\n                width: 100%;\n                height: 100%;\n                transition: 0.5s;\n                aspect-ratio: 3\/2;\n                object-fit: cover;\n            }\n\n            .hkb-pe-item:hover .hkb-pe-media img {\n                transform: scale(1.1);\n            }\n\n            .hkb-pe-content {\n                display: block;\n            }\n\n            .hkb-pe-title {\n                display: block;\n                font-size: 26px;\n                line-height: 35px;\n                font-weight: 400;\n                transition: color 0.5s;\n            }\n\n            .hkb-pe-item:hover .hkb-pe-title {\n                color: var(--clr-blue-60, #7a7396);\n            }\n\n            .hkb-pe-date {\n                display: block;\n                margin-top: 16px;\n                font-size: 14px;\n                line-height: 16.8px;\n                text-transform: uppercase;\n            }\n\n            .hkb-pe-desc {\n                display: block;\n                margin-top: 24px;\n                max-width: 520px;\n                font-size: 16px;\n                line-height: 26px;\n            }\n\n            .hkb-pe-more {\n                display: inline-flex;\n                align-items: center;\n                gap: 12px;\n                margin-top: 24px;\n                font-size: 18px;\n                line-height: 25.2px;\n                transition: color 0.5s;\n            }\n\n            .hkb-pe-arrow {\n                display: inline-flex;\n                color: inherit;\n            }\n\n            .hkb-pe-item:hover .hkb-pe-more {\n                color: var(--clr-blue-60, #7a7396);\n            }\n\n            \/* Pagination \u2014 same recipe as the shop (.hkb-products\n               .woocommerce-pagination in shop-filter.css): 28px circles,\n               filled current page, text Previous\/Next with chevrons. *\/\n            .hkb-past-events .hkb-pe-pagination {\n                margin-top: 60px;\n                display: flex;\n                justify-content: center;\n            }\n\n            .hkb-past-events .hkb-pe-pagination ul {\n                display: flex;\n                align-items: center;\n                justify-content: center;\n                flex-wrap: wrap;\n                gap: 8px;\n                list-style: none;\n                margin: 0;\n                padding: 0;\n            }\n\n            .hkb-past-events .hkb-pe-pagination li {\n                margin: 0;\n            }\n\n            .hkb-past-events .hkb-pe-pagination a.page-numbers,\n            .hkb-past-events .hkb-pe-pagination span.page-numbers {\n                display: flex;\n                align-items: center;\n                justify-content: center;\n                min-width: 28px;\n                height: 28px;\n                aspect-ratio: 1 \/ 1;\n                border-radius: 100%;\n                font-size: var(--fs-12, 12px);\n                line-height: var(--lh-168, 16.8px);\n                color: var(--clr-blue-100, #211650);\n                text-decoration: none;\n                cursor: pointer;\n                transition: background .15s;\n            }\n\n            .hkb-past-events .hkb-pe-pagination span.page-numbers.current {\n                background: #e9e6ed;\n                color:  var(--clr-blue-100);\n            }\n\n            .hkb-past-events .hkb-pe-pagination a.page-numbers:not(.next, .prev):hover {\n                background: #e9e6ed;\n            }\n\n            .hkb-past-events .hkb-pe-pagination a.prev,\n            .hkb-past-events .hkb-pe-pagination a.next,\n            .hkb-past-events .hkb-pe-pagination span.prev,\n            .hkb-past-events .hkb-pe-pagination span.next {\n                gap: 6px;\n                font-weight: 300;\n                width: auto;\n                min-width: auto;\n                aspect-ratio: auto;\n                background: transparent;\n                padding: 8px 16px;\n            }\n\n            .hkb-past-events .hkb-pe-pagination span.is-disabled {\n                opacity: 0.6;\n                cursor: not-allowed;\n                pointer-events: none;\n            }\n\n            .hkb-past-events .hkb-pe-pagination .prev::before,\n            .hkb-past-events .hkb-pe-pagination .next::after {\n                content: '';\n                display: inline-block;\n                width: 12px;\n                height: 12px;\n                background: var(--clr-blue-100, #211650);\n                mask-size: contain;\n                mask-repeat: no-repeat;\n                mask-position: center;\n                -webkit-mask-size: contain;\n                -webkit-mask-repeat: no-repeat;\n                -webkit-mask-position: center;\n            }\n\n            .hkb-past-events .hkb-pe-pagination .prev::before {\n                mask-image: url('https:\/\/www.hkballet.com\/wp-content\/themes\/hello-elementor-child\/assets\/img\/chevron-left.svg');\n                -webkit-mask-image: url('https:\/\/www.hkballet.com\/wp-content\/themes\/hello-elementor-child\/assets\/img\/chevron-left.svg');\n            }\n\n            .hkb-past-events .hkb-pe-pagination .next::after {\n                mask-image: url('https:\/\/www.hkballet.com\/wp-content\/themes\/hello-elementor-child\/assets\/img\/chevron-right.svg');\n                -webkit-mask-image: url('https:\/\/www.hkballet.com\/wp-content\/themes\/hello-elementor-child\/assets\/img\/chevron-right.svg');\n            }\n\n            .hkb-past-events .hkb-pe-pagination span.dots {\n                background: none;\n                letter-spacing: 2px;\n            }\n\n            @media (max-width: 767px) {\n                .hkb-past-events .hkb-pe-pagination {\n                    margin-top: 40px;\n                }\n\n                .hkb-pe-header {\n                    gap: 20px;\n                    padding: 20px 0;\n                }\n\n                .hkb-pe-header-title {\n                    font-size: 16px;\n                    line-height: 23px;\n                }\n\n                .hkb-pe-toggle {\n                    width: 16px;\n                }\n\n                .hkb-pe-body {\n                    padding-bottom: 40px;\n                }\n\n                .hkb-pe-list {\n                    gap: 40px;\n                }\n\n                \/* Stack: image on top, then text. *\/\n                .hkb-pe-item {\n                    grid-template-columns: 1fr;\n                    gap: 20px;\n                }\n\n                .hkb-pe-title {\n                    font-size: 18px;\n                    line-height: 23.5px;\n                }\n\n                .hkb-pe-desc {\n                    margin-top: 20px;\n                    font-size: 14px;\n                    line-height: 21px;\n                }\n\n                .hkb-pe-more {\n                    margin-top: 20px;\n                    font-size: 14px;\n                    line-height: 18.2px;\n                }\n\n                .hkb-pe-arrow svg {\n                    width: 16px;\n                    height: 16px;\n                }\n\n                .hkb-pe-date{\n                    font-size: 12px;\n                    line-height: 16.8px;\n                    margin-top: 20px;\n                }\n\n                .hkb-pe-group-heading {\n                    font-size: 18px;\n                    line-height: 23.5px;\n                }\n            }\n        <\/style>\n                <section id=\"hkb-past-events-399b8743\" class=\"hkb-past-events\">\n            <div class=\"hkb-pe-header\" role=\"button\" tabindex=\"0\"\n                aria-expanded=\"false\"\n                aria-controls=\"hkb-past-events-399b8743-body\"\n                data-hkb-pe-toggle>\n                <span class=\"hkb-pe-header-title\">\u8fc7\u5f80\u6d3b\u52a8<\/span>\n                <span class=\"hkb-pe-toggle\" aria-hidden=\"true\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n                        <path d=\"M20 9.49579V10.4958H0V9.49579H20Z\" fill=\"#211650\" \/>\n                        <path d=\"M10.504 20H9.50403L9.50403 0L10.504 4.37114e-08L10.504 20Z\" fill=\"#211650\" \/>\n                    <\/svg>\n                <\/span>\n            <\/div>\n\n            <div class=\"hkb-pe-body\" id=\"hkb-past-events-399b8743-body\">\n                <div class=\"hkb-pe-list\">\n                                                                                                        <a class=\"hkb-pe-item\" href=\"https:\/\/www.hkballet.com\/zh-hans\/event\/dunhuang-in-search-of-light-ballet-360\/\">\n            <span class=\"hkb-pe-media\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"552\" src=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/08\/Ballet-360_Dunhuang_1920x1324-1024x706.png\" class=\"attachment-large size-large wp-post-image\" alt=\"\" srcset=\"https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/08\/Ballet-360_Dunhuang_1920x1324-1024x706.png 1024w, https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/08\/Ballet-360_Dunhuang_1920x1324-300x207.png 300w, https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/08\/Ballet-360_Dunhuang_1920x1324-768x530.png 768w, https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/08\/Ballet-360_Dunhuang_1920x1324-1536x1059.png 1536w, https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/08\/Ballet-360_Dunhuang_1920x1324-2048x1412.png 2048w, https:\/\/www.hkballet.com\/wp-content\/uploads\/2026\/08\/Ballet-360_Dunhuang_1920x1324-600x414.png 600w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/span>\n            <span class=\"hkb-pe-content\">\n                <span class=\"hkb-pe-title\">\u300a\u6566\u714c\uff1a\u6eaf\u5149\u884c\u300b\u82ad\u857e360\u00b0<\/span>\n                                    <span class=\"hkb-pe-date\">2026\u5e7410\u67088\u65e5<\/span>\n                                                    <span class=\"hkb-pe-desc gotham-regular\">\u5728\u8fd9\u90e8\u4e16\u754c\u9996\u6f14\u7684\u82ad\u857e\u4e2d\uff0c\u53d7\u6566\u714c\u6587\u5316\u548c\u6587\u5b66\u5de8\u8457\u300a\u6d41\u6d6a\u2026<\/span>\n                                <span class=\"hkb-pe-more hkb-pe-more--internal\">\n                    \u4e86\u89e3\u66f4\u591a                    <span class=\"hkb-pe-arrow\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><g><path d=\"M0 10.667V9.33398L20 9.33398V10.667L0 10.667Z\" fill=\"currentColor\"><\/path><path d=\"M19.7404 10.7457C16.2858 10.2674 13.0847 7.67139 11.2728 3.43073L12.3427 2.63417C14.0074 6.53041 16.9269 8.8651 20.0125 9.2923L19.7404 10.7457Z\" fill=\"currentColor\"><\/path><path d=\"M19.7404 9.25432C16.2858 9.7326 13.0847 12.3286 11.2728 16.5693L12.3427 17.3658C14.0074 13.4696 16.9269 11.1349 20.0125 10.7077L19.7404 9.25432Z\" fill=\"currentColor\"><\/path><\/g><\/svg><\/span>\n                <\/span>\n            <\/span>\n        <\/a>\n                                                                    <\/div>\n\n                            <\/div>\n\n            <script>\n                (function () {\n                    var section = document.getElementById(\"hkb-past-events-399b8743\");\n                    if (!section) return;\n\n                    var header = section.querySelector('[data-hkb-pe-toggle]');\n                    if (!header) return;\n\n                    function toggle() {\n                        var open = !section.classList.contains('is-open');\n                        section.classList.toggle('is-open', open);\n                        header.setAttribute('aria-expanded', open ? 'true' : 'false');\n                    }\n\n                    header.addEventListener('click', toggle);\n                    header.addEventListener('keydown', function (event) {\n                        if (event.key === 'Enter' || event.key === ' ') {\n                            event.preventDefault();\n                            toggle();\n                        }\n                    });\n\n                    \/\/ Client-side pagination: same look and ellipsis rules as\n                    \/\/ the shop pagination (includes\/main-function.php), but\n                    \/\/ switching pages only re-slices the already-rendered list\n                    \/\/ so the accordion never closes or reloads.\n                    var list = section.querySelector('.hkb-pe-list');\n                    var pager = section.querySelector('[data-hkb-pe-pagination]');\n                    if (list && pager) {\n                        var rows = Array.prototype.slice.call(list.children);\n                        var items = rows.filter(function (row) {\n                            return row.classList.contains('hkb-pe-item');\n                        });\n                        var perPage = parseInt(pager.getAttribute('data-per-page'), 10) || 6;\n                        var totalPages = Math.ceil(items.length \/ perPage);\n                        var currentPage = 1;\n                        var prevLabel = \"\\u4e0a\\u4e00\\u9879\";\n                        var nextLabel = \"\\u4e0b\\u4e00\\u9879\";\n\n                        function renderPage() {\n                            items.forEach(function (item, index) {\n                                var page = Math.floor(index \/ perPage) + 1;\n                                item.style.display = page === currentPage ? '' : 'none';\n                            });\n\n                            \/\/ A group heading stays visible only when at least\n                            \/\/ one of its own items is on the current page.\n                            rows.forEach(function (row, rowIndex) {\n                                if (!row.classList.contains('hkb-pe-group-heading')) return;\n                                var hasVisibleItem = false;\n                                for (var j = rowIndex + 1; j < rows.length; j++) {\n                                    if (rows[j].classList.contains('hkb-pe-group-heading')) break;\n                                    if (rows[j].style.display !== 'none') { hasVisibleItem = true; break; }\n                                }\n                                row.style.display = hasVisibleItem ? '' : 'none';\n                            });\n\n                            var parts = [];\n                            parts.push(currentPage > 1\n                                ? '<li><a href=\"#\" class=\"prev page-numbers\" data-page=\"' + (currentPage - 1) + '\">' + prevLabel + '<\/a><\/li>'\n                                : '<li><span class=\"prev page-numbers is-disabled\">' + prevLabel + '<\/span><\/li>');\n                            for (var i = 1; i <= totalPages; i++) {\n                                if (i === 1 || i === totalPages || Math.abs(i - currentPage) <= 1) {\n                                    parts.push(i === currentPage\n                                        ? '<li><span class=\"page-numbers current\">' + i + '<\/span><\/li>'\n                                        : '<li><a href=\"#\" class=\"page-numbers\" data-page=\"' + i + '\">' + i + '<\/a><\/li>');\n                                } else if ((i === 2 && currentPage > 3) || (i === totalPages - 1 && currentPage < totalPages - 2)) {\n                                    parts.push('<li><span class=\"page-numbers dots\">&hellip;<\/span><\/li>');\n                                }\n                            }\n                            parts.push(currentPage < totalPages\n                                ? '<li><a href=\"#\" class=\"next page-numbers\" data-page=\"' + (currentPage + 1) + '\">' + nextLabel + '<\/a><\/li>'\n                                : '<li><span class=\"next page-numbers is-disabled\">' + nextLabel + '<\/span><\/li>');\n\n                            pager.querySelector('ul').innerHTML = parts.join('');\n                        }\n\n                        pager.addEventListener('click', function (event) {\n                            var link = event.target.closest ? event.target.closest('a[data-page]') : null;\n                            if (!link) return;\n                            event.preventDefault();\n                            var page = parseInt(link.getAttribute('data-page'), 10);\n                            if (!page || page === currentPage) return;\n                            currentPage = Math.min(Math.max(page, 1), totalPages);\n                            renderPage();\n                            \/\/ If the list top scrolled out of view, bring the\n                            \/\/ reader back to the start of the new page.\n                            var body = section.querySelector('.hkb-pe-body');\n                            if (body && body.getBoundingClientRect().top < 0) {\n                                body.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                            }\n                        });\n\n                        renderPage();\n                    }\n                })();\n            <\/script>\n        <\/section>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c80c8cd e-flex e-con-boxed e-con e-parent\" data-id=\"c80c8cd\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"featured_media":25411,"template":"","engage_category":[390],"class_list":["post-26245","engage","type-engage","status-publish","has-post-thumbnail","hentry","engage_category-hkb-upclose"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hkballet.com\/zh-hans\/wp-json\/wp\/v2\/engage\/26245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hkballet.com\/zh-hans\/wp-json\/wp\/v2\/engage"}],"about":[{"href":"https:\/\/www.hkballet.com\/zh-hans\/wp-json\/wp\/v2\/types\/engage"}],"version-history":[{"count":0,"href":"https:\/\/www.hkballet.com\/zh-hans\/wp-json\/wp\/v2\/engage\/26245\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hkballet.com\/zh-hans\/wp-json\/wp\/v2\/media\/25411"}],"wp:attachment":[{"href":"https:\/\/www.hkballet.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=26245"}],"wp:term":[{"taxonomy":"engage_category","embeddable":true,"href":"https:\/\/www.hkballet.com\/zh-hans\/wp-json\/wp\/v2\/engage_category?post=26245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}