{
  "version": 3,
  "sources": ["/cdn/shop/t/5/assets/plant-news.js?cachebust=20260912c"],
  "sourcesContent": ["/**\n * plant-news.js\n * \u690D\u7269\u30FB\u5712\u82B8\u30FB\u8FB2\u696D\u30CB\u30E5\u30FC\u30B9\u30AB\u30C6\u30B4\u30EA\u30DA\u30FC\u30B8\u3002\n * - \u30BF\u30D6+\u30B9\u30EF\u30A4\u30D7\u540C\u671F\u3001\u7D5E\u308A\u8FBC\u307F(\u30BF\u30B0facet)\u3001Series\u5C55\u958B\u306F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u5074\u306E\u307F\u3067\u5B8C\u7D50\n * - \u30CB\u30E5\u30FC\u30B9\u672C\u4F53\u306F plant-news-feed Worker(Cloudflare KV)\u304B\u3089\u53D6\u5F97\n * - MY AREA\u306Fuser-region-follows Worker\u3067\u30D5\u30A9\u30ED\u30FC\u30A8\u30EA\u30A2\u3092\u53D6\u5F97\u3057\u3001\n *   get-events-cache\u7D4C\u7531\u3067Leafla\u672C\u4F53\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u30D5\u30A3\u30EB\u30BF\u3057\u3066\u8868\u793A\u3059\u308B\n */\n(function () {\n  \"use strict\";\n\n  /* ---------- AdSense\u5E83\u544A(2026-08-30\u8FFD\u52A0) ----------\n     \u3053\u306E\u30D5\u30A1\u30A4\u30EB\u306FCloudflare KV\u304B\u3089\u53D6\u5F97\u3057\u305FJSON\u3092\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u5074\u3067HTML\u6587\u5B57\u5217\u306B\n     \u7D44\u307F\u7ACB\u3066.innerHTML\u3078\u6D41\u3057\u8FBC\u3080\u65B9\u5F0F\u306E\u305F\u3081\u3001Liquid\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5074(main-article.liquid\u7B49)\n     \u306E\u3088\u3046\u306B<script>\u30BF\u30B0\u3092\u5E83\u544AHTML\u3078\u57CB\u3081\u8FBC\u3093\u3067\u3082\u5B9F\u884C\u3055\u308C\u306A\u3044(innerHTML\u7D4C\u7531\u306E\n     <script>\u306F\u30D6\u30E9\u30A6\u30B6\u304C\u5B9F\u884C\u3057\u306A\u3044)\u3002\u305D\u306E\u305F\u3081\u3001HTML\u633F\u5165\u5F8C\u306B\u660E\u793A\u7684\u306BJS\u3067\n     (adsbygoogle=window.adsbygoogle||[]).push({})\u3092\u547C\u3076\u5FC5\u8981\u304C\u3042\u308B\u3002\n     data-ad-slot\u306Fsections/main-article.liquid\u306E\u65E2\u5B58\u30E6\u30CB\u30C3\u30C8\u3092\u6D41\u7528(AdSense\u306E\n     \u5E83\u544A\u30E6\u30CB\u30C3\u30C8\u306F\u8907\u6570\u30DA\u30FC\u30B8\u3067\u4F7F\u3044\u56DE\u3057\u3066\u554F\u984C\u7121\u3044)\u3002 */\n  var ADSENSE_CLIENT = \"ca-pub-3139962328628180\";\n\n  function buildAdUnitHtml(extraLiClass) {\n    var wrapOpen = extraLiClass ? '<li class=\"' + extraLiClass + '\">' : \"\";\n    var wrapClose = extraLiClass ? \"</li>\" : \"\";\n    return wrapOpen + '<div class=\"adu-block\"><p class=\"adu-label\">\u5E83\u544A</p>' +\n      '<ins class=\"adsbygoogle\" style=\"display:block\" data-ad-client=\"' + ADSENSE_CLIENT + '\" data-ad-slot=\"9939609043\" data-ad-format=\"auto\" data-full-width-responsive=\"true\"></ins>' +\n      '</div>' + wrapClose;\n  }\n\n  // innerHTML\u7D4C\u7531\u3067\u633F\u5165\u3057\u305F<ins class=\"adsbygoogle\">\u306F\u30B9\u30AF\u30EA\u30D7\u30C8\u304C\u81EA\u52D5\u5B9F\u884C\u3055\u308C\u306A\u3044\n  // \u305F\u3081\u3001\u633F\u5165\u5F8C\u306B\u3053\u308C\u3092\u547C\u3093\u3067\u672A\u51E6\u7406\u5206\u3060\u3051\u660E\u793A\u7684\u306Bpush\u3059\u308B\u3002\n  function activateAdUnitsWithin(root) {\n    if (!root || !window.adsbygoogle) return;\n    var inses = qsa(\"ins.adsbygoogle:not([data-adsbygoogle-status])\", root);\n    inses.forEach(function () {\n      try { (window.adsbygoogle = window.adsbygoogle || []).push({}); } catch (e) { /* noop */ }\n    });\n  }\n\n  var REGION_LABELS = {\n    HOKKAIDO: \"\u5317\u6D77\u9053\", TOHOKU: \"\u6771\u5317\", KANTO: \"\u95A2\u6771\", CHUBU: \"\u4E2D\u90E8\", KANSAI: \"\u95A2\u897F\",\n    SHIKOKU: \"\u56DB\u56FD\", CHUGOKU: \"\u4E2D\u56FD\", KYUSHU: \"\u4E5D\u5DDE\", OKINAWA: \"\u6C96\u7E04\",\n    DOUO: \"\u9053\u592E\", TOKACHI: \"\u5341\u52DD\", DONAN: \"\u9053\u5357\", OKHOTSK: \"\u30AA\u30DB\u30FC\u30C4\u30AF\", DOHOKU: \"\u9053\u5317\", KUSHIRO: \"\u91E7\u8DEF\u30FB\u6839\u5BA4\",\n    AOMORI: \"\u9752\u68EE\u770C\", IWATE: \"\u5CA9\u624B\u770C\", MIYAGI: \"\u5BAE\u57CE\u770C\", AKITA: \"\u79CB\u7530\u770C\", YAMAGATA: \"\u5C71\u5F62\u770C\", FUKUSHIMA: \"\u798F\u5CF6\u770C\",\n    TOKYO: \"\u6771\u4EAC\u90FD\", KANAGAWA: \"\u795E\u5948\u5DDD\u770C\", CHIBA: \"\u5343\u8449\u770C\", SAITAMA: \"\u57FC\u7389\u770C\", IBARAKI: \"\u8328\u57CE\u770C\", TOCHIGI: \"\u6803\u6728\u770C\", GUNMA: \"\u7FA4\u99AC\u770C\",\n    AICHI: \"\u611B\u77E5\u770C\", SHIZUOKA: \"\u9759\u5CA1\u770C\", GIFU: \"\u5C90\u961C\u770C\", NAGANO: \"\u9577\u91CE\u770C\", YAMANASHI: \"\u5C71\u68A8\u770C\", NIIGATA: \"\u65B0\u6F5F\u770C\", TOYAMA: \"\u5BCC\u5C71\u770C\", ISHIKAWA: \"\u77F3\u5DDD\u770C\", FUKUI: \"\u798F\u4E95\u770C\",\n    OSAKA: \"\u5927\u962A\u5E9C\", KYOTO: \"\u4EAC\u90FD\u5E9C\", HYOGO: \"\u5175\u5EAB\u770C\", NARA: \"\u5948\u826F\u770C\", SHIGA: \"\u6ECB\u8CC0\u770C\", WAKAYAMA: \"\u548C\u6B4C\u5C71\u770C\",\n    TOKUSHIMA: \"\u5FB3\u5CF6\u770C\", KAGAWA: \"\u9999\u5DDD\u770C\", EHIME: \"\u611B\u5A9B\u770C\", KOCHI: \"\u9AD8\u77E5\u770C\",\n    HIROSHIMA: \"\u5E83\u5CF6\u770C\", OKAYAMA: \"\u5CA1\u5C71\u770C\", YAMAGUCHI: \"\u5C71\u53E3\u770C\", SHIMANE: \"\u5CF6\u6839\u770C\", TOTTORI: \"\u9CE5\u53D6\u770C\",\n    FUKUOKA: \"\u798F\u5CA1\u770C\", SAGA: \"\u4F50\u8CC0\u770C\", NAGASAKI: \"\u9577\u5D0E\u770C\", KUMAMOTO: \"\u718A\u672C\u770C\", OITA: \"\u5927\u5206\u770C\", MIYAZAKI: \"\u5BAE\u5D0E\u770C\", KAGOSHIMA: \"\u9E7F\u5150\u5CF6\u770C\",\n    NAHA: \"\u90A3\u8987\u5E02\", ISHIGAKI: \"\u77F3\u57A3\u5CF6\"\n  };\n\n  var FEED_URL = window.LEAFLA_PLANT_NEWS_FEED_URL;\n  var FOLLOWS_BASE_URL = window.LEAFLA_USER_REGION_FOLLOWS_URL;\n  var EVENTS_API_BASE = window.LEAFLA_EVENTS_API_BASE;\n  var CUSTOMER_EMAIL = window.LEAFLA_CUSTOMER_EMAIL || \"\";\n  var TABS = window.LEAFLA_PLANT_NEWS_TABS || [];\n  var AREAS_URL = window.LEAFLA_PLANT_NEWS_AREAS_URL || \"/pages/plant-news-areas\";\n  // compact\u30E2\u30FC\u30C9(\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8\u57CB\u3081\u8FBC\u307F\u7528): FEATURE/SERIES\u6F14\u51FA\u30FBfacet\u7D5E\u308A\u8FBC\u307F\u3092\u7701\u7565\u3057\u3001\n  // \u5404\u30BF\u30D6\u4E0A\u4F4D\u6570\u4EF6+\u300C\u3082\u3063\u3068\u898B\u308B\u300D\u3060\u3051\u306E\u8EFD\u91CF\u8868\u793A\u306B\u3059\u308B\u3002\u30C7\u30FC\u30BF\u53D6\u5F97\u30FB\u30BF\u30D6\u69CB\u6210\u306Ffull\u7248\u3068\u5171\u901A\u3002\n  var COMPACT = !!window.LEAFLA_PLANT_NEWS_COMPACT;\n  var COMPACT_ITEM_LIMIT = 5;\n  var COMPACT_MORE_URL = \"/pages/plant-news\";\n\n  var state = {\n    activeIndex: 0,\n    selectedTags: {},\n    expandedSeries: {},\n    feedByCategory: {},\n    feedLoaded: false,\n    feedError: false,\n    followedRegions: [],\n    myAreaEvents: [],\n    myAreaLoaded: false,\n    regionEventsPreview: {},\n    regionEventsPreviewLoaded: false,\n    weekendPlans: [],\n    weekendPlansLoaded: false,\n    weekendPlansError: false\n  };\n\n  var scrollLock = false;\n  var unlockTimer = null;\n\n  function qs(sel, root) { return (root || document).querySelector(sel); }\n  function qsa(sel, root) { return Array.prototype.slice.call((root || document).querySelectorAll(sel)); }\n\n  function escapeHtml(s) {\n    return String(s == null ? \"\" : s).replace(/[&<>\"']/g, function (c) {\n      return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\", \"'\": \"&#39;\" }[c];\n    });\n  }\n\n  function formatDate(iso) {\n    if (!iso) return \"\";\n    var d = new Date(iso);\n    if (isNaN(d.getTime())) return \"\";\n    return d.toLocaleDateString(\"ja-JP\", { year: \"numeric\", month: \"numeric\", day: \"numeric\" });\n  }\n\n  // NewsPicks/SmartNews\u7684\u306B\u76F4\u8FD1\u306F\u76F8\u5BFE\u6642\u523B\u3001\u305D\u308C\u3088\u308A\u53E4\u3044\u3082\u306E\u306F\u65E5\u4ED8\u8868\u793A\u306B\u3059\u308B\u3002\n  function formatRelativeTime(iso) {\n    if (!iso) return \"\";\n    var d = new Date(iso);\n    if (isNaN(d.getTime())) return \"\";\n    var diffMin = Math.floor((Date.now() - d.getTime()) / 60000);\n    if (diffMin < 1) return \"\u305F\u3063\u305F\u4ECA\";\n    if (diffMin < 60) return diffMin + \"\u5206\u524D\";\n    var diffHour = Math.floor(diffMin / 60);\n    if (diffHour < 24) return diffHour + \"\u6642\u9593\u524D\";\n    var diffDay = Math.floor(diffHour / 24);\n    if (diffDay < 7) return diffDay + \"\u65E5\u524D\";\n    return formatDate(iso);\n  }\n\n  function buildMetaHtml(source, iso) {\n    var time = formatRelativeTime(iso);\n    if (source && time) return '<span class=\"pn-card-source\">' + escapeHtml(source) + '</span><span class=\"pn-card-meta-sep\">\u30FB</span>' + escapeHtml(time);\n    if (source) return '<span class=\"pn-card-source\">' + escapeHtml(source) + '</span>';\n    return escapeHtml(time);\n  }\n\n  // \u30AB\u30C6\u30B4\u30EA\u3054\u3068\u306B\u30B3\u30F3\u30C6\u30F3\u30C4\u91CF\u304C\u5927\u304D\u304F\u9055\u3046\u305F\u3081\u3001\u30D1\u30CD\u30EB\u3092flex\u3067\u7B49\u9AD8\u30B9\u30C8\u30EC\u30C3\u30C1\u3055\u305B\u305A\n  // \u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30D1\u30CD\u30EB\u306E\u5B9F\u9AD8\u3055\u306B.pn-main-scroll\u3092JS\u3067\u8FFD\u5F93\u3055\u305B\u308B(\u53EF\u5909\u9AD8\u3055)\u3002\n  function updateScrollerHeight() {\n    var scroller = qs(\"#pnMainScroll\");\n    if (!scroller) return;\n    var panels = qsa(\".pn-panel\", scroller);\n    var activePanel = panels[state.activeIndex];\n    if (!activePanel) return;\n    scroller.style.height = activePanel.scrollHeight + \"px\";\n  }\n\n  /* ---------- tab / swipe sync ---------- */\n  // 2026-08-29 \u8FFD\u8A18: setActiveIndex()\u306F\u30BF\u30D6\u30CF\u30A4\u30E9\u30A4\u30C8\u5909\u66F4\u306B\u52A0\u3048\u3066\u9AD8\u3055\u518D\u8A08\u7B97\u30FB\n  // \u7E26\u30B9\u30AF\u30ED\u30FC\u30EB\u79FB\u52D5\u3068\u3044\u3046\u300C\u526F\u4F5C\u7528\u306E\u91CD\u3044\u300D\u51E6\u7406\u3092\u542B\u3080\u3002\u30D5\u30EA\u30C3\u30AF\u4E2D(\u30B9\u30AF\u30ED\u30FC\u30EB\u4E2D\u306E\n  // #pnMainScroll\u81EA\u8EAB)\u306Bscroller.style.height\u3092\u66F8\u304D\u63DB\u3048\u308B\u3068\u3001\u5B9F\u6A5F(\u7279\u306B\u30B9\u30DE\u30DB)\u3067\n  // \u30BF\u30C3\u30C1\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u7269\u7406\u6319\u52D5\u304C\u4E71\u308C\u3001\u8EFD\u304F\u30D5\u30EA\u30C3\u30AF\u3057\u305F\u3060\u3051\u3067\u8907\u6570\u30D1\u30CD\u30EB\u5206\n  // \u5439\u3063\u98DB\u3076/\u4E2D\u9014\u534A\u7AEF\u306B\u5207\u308A\u66FF\u308F\u308B\u4E0D\u5177\u5408\u304C\u767A\u751F\u3059\u308B\u3053\u3068\u304C\u78BA\u8A8D\u3055\u308C\u305F\u3002\n  // \u305D\u306E\u305F\u3081\u300C\u30BF\u30D6\u306E\u30CF\u30A4\u30E9\u30A4\u30C8\u3060\u3051\u3092\u66F4\u65B0\u3059\u308B\u8EFD\u91CF\u51E6\u7406\u300D\u3068\u300C\u9AD8\u3055\u518D\u8A08\u7B97\u30FB\u7E26\u30B9\u30AF\u30ED\u30FC\u30EB\n  // \u79FB\u52D5\u307E\u3067\u542B\u3081\u305F\u672C\u5207\u66FF\u300D\u3092\u5206\u96E2\u3057\u3001\u672C\u5207\u66FF\u306F\u30B9\u30AF\u30ED\u30FC\u30EB\u304C\u5B8C\u5168\u306B\u53CE\u307E\u3063\u305F\u6642\u3060\u3051\u884C\u3046\n  // (initScrollSync\u53C2\u7167)\u3002\n  function updateTabHighlight(idx) {\n    qsa(\".pn-tab\").forEach(function (el) {\n      el.classList.toggle(\"pn-tab--active\", Number(el.getAttribute(\"data-idx\")) === idx);\n    });\n    var tabRow = qs(\"#pnTabRow\");\n    if (tabRow) {\n      var tabEl = tabRow.querySelector('[data-idx=\"' + idx + '\"]');\n      if (tabEl && tabEl.scrollIntoView) {\n        tabEl.scrollIntoView({ inline: \"center\", block: \"nearest\", behavior: \"smooth\" });\n      }\n    }\n  }\n\n  function setActiveIndex(idx) {\n    var changed = idx !== state.activeIndex;\n    state.activeIndex = idx;\n    updateTabHighlight(idx);\n    // \u30AB\u30C6\u30B4\u30EA\u3092\u5B9F\u969B\u306B\u5207\u308A\u66FF\u3048\u305F\u6642\u3060\u3051\u3001\u7E26\u30B9\u30AF\u30ED\u30FC\u30EB\u4F4D\u7F6E\u3092\u30BF\u30D6\u30D0\u30FC\u306E\u4F4D\u7F6E\u307E\u3067\u623B\u3059\u3002\n    // \u3053\u308C\u304C\u7121\u3044\u3068\u3001\u9014\u4E2D\u307E\u3067\u30B9\u30AF\u30ED\u30FC\u30EB\u3057\u305F\u72B6\u614B\u3067\u30D5\u30EA\u30C3\u30AF\u3057\u305F\u969B\u306B\u3001\u6B21\u306E\u30AB\u30C6\u30B4\u30EA\u306E\n    // \u5185\u5BB9\u304C(\u5148\u982D\u304B\u3089\u3067\u306F\u306A\u304F)\u524D\u30AB\u30C6\u30B4\u30EA\u3068\u540C\u3058\u30B9\u30AF\u30ED\u30FC\u30EB\u4F4D\u7F6E\u304B\u3089\u898B\u3048\u59CB\u3081\u3066\u3057\u307E\u3046\u3002\n    // .pn-tab-bar\u306Fposition:sticky\u306E\u305F\u3081\u3001\u56FA\u5B9A\u8868\u793A\u4E2D\u306FscrollIntoView()\u304C\n    // \u300C\u65E2\u306B\u898B\u3048\u3066\u3044\u308B\u300D\u3068\u5224\u5B9A\u3057\u3066\u4F55\u3082\u30B9\u30AF\u30ED\u30FC\u30EB\u3057\u306A\u3044(\u5B9F\u969B\u306E\u30DA\u30FC\u30B8\u4F4D\u7F6E\u306B\u95A2\u308F\u3089\u305A\n    // \u5E38\u306B\u30D8\u30C3\u30C0\u30FC\u76F4\u4E0B\u306B\u63CF\u753B\u3055\u308C\u3066\u3044\u308B\u305F\u3081)\u3002\u305D\u306E\u305F\u3081sticky\u8981\u7D20\u81EA\u4F53\u3067\u306F\u306A\u304F\u3001\n    // \u901A\u5E38\u30D5\u30ED\u30FC\u306E#pnMainScroll\u3092\u57FA\u6E96\u306B\u3001\u30D8\u30C3\u30C0\u30FC+\u30BF\u30D6\u30D0\u30FC\u5206\u306E\u30AA\u30D5\u30BB\u30C3\u30C8\u3092\u5F15\u3044\u305F\n    // \u4F4D\u7F6E\u307E\u3067window.scrollTo\u3067\u660E\u793A\u7684\u306B\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B\u3002\n    if (changed) scrollPanelToTop();\n    updateScrollerHeight();\n    updateFlickNavButtons();\n  }\n\n  // \u77E2\u5370\u30DC\u30BF\u30F3\u306E\u6709\u52B9/\u7121\u52B9\u3092\u73FE\u5728\u4F4D\u7F6E\u306B\u5408\u308F\u305B\u3066\u66F4\u65B0\u3059\u308B\u3002\u30DC\u30BF\u30F3\u81EA\u4F53\u306F\u300C\u6A2A\u306B\n  // \u7D9A\u304D\u304C\u3042\u308B\u300D\u3053\u3068\u3092\u4E00\u76EE\u3067\u4F1D\u3048\u308B\u30D2\u30F3\u30C8\u3092\u517C\u306D\u308B\u305F\u3081\u3001\u30AF\u30EA\u30C3\u30AF\u3067\u306E\u5207\u308A\u66FF\u3048\u3082\n  // \u30D5\u30EA\u30C3\u30AF\u3068\u540C\u3058jumpToPanel()\u3092\u4F7F\u3046\u3002\n  function updateFlickNavButtons() {\n    var prevBtn = qs(\"#pnFlickPrev\");\n    var nextBtn = qs(\"#pnFlickNext\");\n    var maxIdx = (TABS.length || 1) - 1;\n    if (prevBtn) prevBtn.disabled = state.activeIndex <= 0;\n    if (nextBtn) nextBtn.disabled = state.activeIndex >= maxIdx;\n  }\n\n  function scrollPanelToTop() {\n    var mainScroll = qs(\"#pnMainScroll\");\n    var tabBar = qs(\".pn-tab-bar\");\n    if (!mainScroll) return;\n    var headerH = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--header-height\")) || 0;\n    var tabBarH = tabBar ? tabBar.offsetHeight : 0;\n    var targetY = window.scrollY + mainScroll.getBoundingClientRect().top - headerH - tabBarH;\n    if (targetY < window.scrollY) {\n      window.scrollTo({ top: Math.max(0, targetY), behavior: \"smooth\" });\n    }\n  }\n\n  function jumpToPanel(idx) {\n    var scroller = qs(\"#pnMainScroll\");\n    if (!scroller) return;\n    scrollLock = true;\n    window.clearTimeout(unlockTimer);\n    var unlock = function () {\n      window.clearTimeout(unlockTimer);\n      scroller.removeEventListener(\"scrollend\", unlock);\n      scrollLock = false;\n    };\n    scroller.addEventListener(\"scrollend\", unlock);\n    // scrollend\u304C\u767A\u706B\u3057\u306A\u3044\u74B0\u5883\u5411\u3051\u306E\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u3002\u4E3B\u4FE1\u53F7\u306Fscrollend\u3002\n    unlockTimer = window.setTimeout(unlock, 1000);\n    var width = scroller.clientWidth || 1;\n    scroller.scrollTo({ left: idx * width, behavior: \"smooth\" });\n    setActiveIndex(idx);\n  }\n\n  function initScrollSync() {\n    var scroller = qs(\"#pnMainScroll\");\n    if (!scroller) return;\n    var indexFromScrollPosition = function () {\n      var width = scroller.clientWidth || 1;\n      return Math.round(scroller.scrollLeft / width);\n    };\n\n    // 2026-08-29 \u518D\u4FEE\u6B63(2\u56DE\u76EE): \u524D\u56DE\u3001scroll\u30A4\u30D9\u30F3\u30C8\u306E\u305F\u3073\u306BsetActiveIndex()\n    // (=\u9AD8\u3055\u518D\u8A08\u7B97\u30FB\u7E26\u30B9\u30AF\u30ED\u30FC\u30EB\u79FB\u52D5\u8FBC\u307F\u306E\u672C\u5207\u66FF)\u3092\u547C\u3076\u65B9\u5F0F\u306B\u3057\u305F\u304C\u3001\u5B9F\u6A5F\u306E\n    // \u30B9\u30DE\u30DB\u3067\u300C\u8EFD\u304F\u30D5\u30EA\u30C3\u30AF\u3057\u305F\u3060\u3051\u3067\u8907\u6570\u30D1\u30CD\u30EB\u5206\u5439\u3063\u98DB\u3076/\u4E2D\u9014\u534A\u7AEF\u306B\u5207\u308A\u66FF\u308F\u308B\u300D\n    // \u4E0D\u5177\u5408\u304C\u767A\u751F\u3057\u305F\u3002\u539F\u56E0\u306F\u3001\u30D5\u30EA\u30C3\u30AF\u4E2D(\u30BF\u30C3\u30C1\u30B9\u30AF\u30ED\u30FC\u30EB\u4E2D)\u306E#pnMainScroll\u81EA\u8EAB\u306E\n    // \u9AD8\u3055\u3092updateScrollerHeight()\u3067\u66F8\u304D\u63DB\u3048\u308B\u3068\u3001\u30D6\u30E9\u30A6\u30B6\u306E\u30BF\u30C3\u30C1\u30B9\u30AF\u30ED\u30FC\u30EB\u7269\u7406\n    // \u6F14\u7B97\u304C\u4E71\u308C\u308B\u305F\u3081\u3002\n    // \u305D\u3053\u3067\u300C\u898B\u305F\u76EE\u306E\u8FFD\u5F93\u300D\u3068\u300C\u672C\u5207\u66FF\u300D\u3092\u5206\u96E2\u3059\u308B:\n    //   - \u30B9\u30AF\u30ED\u30FC\u30EB\u4E2D\u306F\u6307\u306E\u52D5\u304D\u306B\u5408\u308F\u305B\u3066\u8EFD\u91CF\u306A\u30BF\u30D6\u30CF\u30A4\u30E9\u30A4\u30C8\u3060\u3051\u3092rAF\u3067\u8FFD\u5F93\u3055\u305B\u308B\n    //     (\u526F\u4F5C\u7528\u7121\u3057\u3001\u9AD8\u3055\u306F\u5909\u3048\u306A\u3044)\n    //   - \u9AD8\u3055\u518D\u8A08\u7B97\u30FB\u7E26\u30B9\u30AF\u30ED\u30FC\u30EB\u79FB\u52D5\u3092\u542B\u3080\u672C\u5207\u66FF\u306F\u3001\u30B9\u30AF\u30ED\u30FC\u30EB\u304C\u5B8C\u5168\u306B\u53CE\u307E\u3063\u3066\n    //     \u304B\u3089(scrollend\u3001\u7121\u3051\u308C\u3070\u30C7\u30D0\u30A6\u30F3\u30B9)1\u56DE\u3060\u3051\u884C\u3046\n    var ticking = false;\n    scroller.addEventListener(\"scroll\", function () {\n      if (scrollLock || ticking) return;\n      ticking = true;\n      window.requestAnimationFrame(function () {\n        var idx = indexFromScrollPosition();\n        if (idx !== state.activeIndex) updateTabHighlight(idx);\n        ticking = false;\n      });\n    });\n\n    var commitFromScrollPosition = function () {\n      var idx = indexFromScrollPosition();\n      if (idx !== state.activeIndex) setActiveIndex(idx);\n    };\n    if (\"onscrollend\" in window) {\n      scroller.addEventListener(\"scrollend\", function () {\n        if (scrollLock) return;\n        commitFromScrollPosition();\n      });\n    } else {\n      var scrollTimer = null;\n      scroller.addEventListener(\"scroll\", function () {\n        if (scrollLock) return;\n        window.clearTimeout(scrollTimer);\n        scrollTimer = window.setTimeout(commitFromScrollPosition, 80);\n      });\n    }\n  }\n\n  // PC\u306F\u30BF\u30C3\u30C1\u64CD\u4F5C\u306E\u30B9\u30EF\u30A4\u30D7\u304C\u7121\u3044\u305F\u3081\u3001\u30DE\u30A6\u30B9\u30C9\u30E9\u30C3\u30B0\u3067\u30AB\u30EB\u30FC\u30BB\u30EB\u306E\u3088\u3046\u306B\n  // \u300C\u8EFD\u304F\u30D5\u30EA\u30C3\u30AF\u300D\u3057\u305F\u3060\u3051\u3067\u6B21/\u524D\u306E\u30D1\u30CD\u30EB\u3078\u5207\u308A\u66FF\u308F\u308B\u3088\u3046\u306B\u3059\u308B\u3002\n  // (\u751F\u306EscrollLeft\u8FFD\u5F93+\u30CD\u30A4\u30C6\u30A3\u30D6scroll-snap\u306E\u7D44\u307F\u5408\u308F\u305B\u3060\u3068\u3001\u30D5\u30EB\u5E45\u306E\u534A\u5206\u8FD1\u304F\n  //  \u30C9\u30E9\u30C3\u30B0\u3057\u306A\u3044\u3068\u5207\u308A\u66FF\u308F\u3089\u305A\u300C\u30D5\u30EA\u30C3\u30AF\u304C\u91CD\u3044\u300D\u4F53\u611F\u306B\u306A\u3063\u3066\u3044\u305F\u305F\u3081\u3001\n  //  \u8DDD\u96E2\u3057\u304D\u3044\u5024+\u901F\u5EA6\u3057\u304D\u3044\u5024\u3092\u898B\u3066jumpToPanel\u3067\u660E\u793A\u7684\u306B1\u679A\u3060\u3051\u9001\u308B\u65B9\u5F0F\u306B\u5909\u66F4)\n  function initDragScroll() {\n    var scroller = qs(\"#pnMainScroll\");\n    if (!scroller) return;\n    var isDown = false;\n    var startX = 0;\n    var startScrollLeft = 0;\n    var lastX = 0;\n    var lastT = 0;\n    var velocity = 0; // px/ms (\u76F4\u8FD1\u306E\u79FB\u52D5\u901F\u5EA6)\n    var DISTANCE_THRESHOLD = 60; // px\n    var VELOCITY_THRESHOLD = 0.35; // px/ms\n\n    scroller.addEventListener(\"mousedown\", function (e) {\n      isDown = true;\n      scroller.classList.add(\"pn-dragging\");\n      startX = lastX = e.pageX;\n      startScrollLeft = scroller.scrollLeft;\n      lastT = Date.now();\n      velocity = 0;\n    });\n    scroller.addEventListener(\"mousemove\", function (e) {\n      if (!isDown) return;\n      e.preventDefault();\n      var now = Date.now();\n      var dt = Math.max(1, now - lastT);\n      velocity = (e.pageX - lastX) / dt;\n      lastX = e.pageX;\n      lastT = now;\n      scroller.scrollLeft = startScrollLeft - (e.pageX - startX);\n    });\n    window.addEventListener(\"mouseup\", function () { finishDrag(); });\n    scroller.addEventListener(\"mouseleave\", function () { finishDrag(); });\n\n    function finishDrag() {\n      if (!isDown) return;\n      isDown = false;\n      scroller.classList.remove(\"pn-dragging\");\n      var totalDelta = lastX - startX;\n      var idx = state.activeIndex;\n      var maxIdx = (TABS.length || 1) - 1;\n      var crossed = Math.abs(totalDelta) > DISTANCE_THRESHOLD || Math.abs(velocity) > VELOCITY_THRESHOLD;\n      if (crossed) {\n        idx = totalDelta < 0 ? Math.min(idx + 1, maxIdx) : Math.max(idx - 1, 0);\n      }\n      jumpToPanel(idx);\n    }\n\n    // \u30C9\u30E9\u30C3\u30B0\u672B\u5C3E\u306Eclick\u3067\u30EA\u30F3\u30AF\u8AA4\u767A\u706B\u3059\u308B\u306E\u3092\u9632\u3050(\u30AB\u30FC\u30C9\u5185\u30EA\u30F3\u30AF\u306E\u30C9\u30E9\u30C3\u30B0\u8AA4\u30AF\u30EA\u30C3\u30AF\u5BFE\u7B56)\u3002\n    scroller.addEventListener(\"click\", function (e) {\n      if (Math.abs(lastX - startX) > 5) { e.preventDefault(); e.stopPropagation(); }\n    }, true);\n  }\n\n  /* ---------- facet filter ---------- */\n  function matchesTagFilters(item) {\n    var dims = Object.keys(state.selectedTags);\n    for (var i = 0; i < dims.length; i++) {\n      var dim = dims[i];\n      var wanted = state.selectedTags[dim];\n      if (!wanted || wanted.length === 0) continue;\n      var itemTags = (item.tags && item.tags[dim]) || [];\n      var hit = wanted.some(function (w) { return itemTags.indexOf(w) >= 0; });\n      if (!hit) return false;\n    }\n    return true;\n  }\n\n  function countFilteredItems() {\n    var total = 0;\n    Object.keys(state.feedByCategory).forEach(function (catId) {\n      total += state.feedByCategory[catId].filter(matchesTagFilters).length;\n    });\n    return total;\n  }\n\n  function updateFacetStatus() {\n    var text = \"\u7D5E\u308A\u8FBC\u307F\u4E2D\uFF1A\" + countFilteredItems() + \"\u4EF6\u306E\u30CB\u30E5\u30FC\u30B9\u304C\u5BFE\u8C61\";\n    qsa(\".pn-facet-status-text\").forEach(function (el) { el.textContent = text; });\n  }\n\n  function syncFacetCheckboxes() {\n    qsa(\".pn-facet-option input[type='checkbox']\").forEach(function (cb) {\n      var dim = cb.getAttribute(\"data-dim\");\n      var value = cb.getAttribute(\"data-value\");\n      cb.checked = ((state.selectedTags[dim]) || []).indexOf(value) >= 0;\n    });\n  }\n\n  function renderChips() {\n    var wrap = qs(\"#pnChipRowWrap\");\n    var row = qs(\"#pnChipRow\");\n    if (!wrap || !row) return;\n    var chips = [];\n    Object.keys(state.selectedTags).forEach(function (dim) {\n      (state.selectedTags[dim] || []).forEach(function (label) { chips.push({ dim: dim, label: label }); });\n    });\n    if (chips.length === 0) {\n      wrap.style.display = \"none\";\n      row.innerHTML = \"\";\n      return;\n    }\n    wrap.style.display = \"\";\n    row.innerHTML = chips.map(function (c) {\n      return '<li><button type=\"button\" class=\"pn-chip\" data-action=\"remove-chip\" data-dim=\"' + escapeHtml(c.dim) + '\" data-value=\"' + escapeHtml(c.label) + '\">' +\n        '<span>' + escapeHtml(c.label) + '</span>' +\n        '<svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg>' +\n        '</button></li>';\n    }).join(\"\");\n  }\n\n  function toggleTag(dim, label) {\n    var current = state.selectedTags[dim] || [];\n    var idx = current.indexOf(label);\n    var next = idx >= 0 ? current.filter(function (x) { return x !== label; }) : current.concat([label]);\n    state.selectedTags = Object.assign({}, state.selectedTags);\n    state.selectedTags[dim] = next;\n    renderChips();\n    syncFacetCheckboxes();\n    updateFacetStatus();\n    renderAllPanels();\n  }\n\n  function clearTags() {\n    state.selectedTags = {};\n    renderChips();\n    syncFacetCheckboxes();\n    updateFacetStatus();\n    renderAllPanels();\n  }\n\n  /* ---------- news item rendering ----------\n     \u30AB\u30FC\u30C9\u88C5\u98FE\u306F\u4F7F\u308F\u305A\u3001NewsPicks\u7684\u306A\u30CB\u30E5\u30FC\u30B9\u30EA\u30B9\u30C8\u884C(.pn-item)\u3068\u3057\u3066\u63CF\u753B\u3059\u308B\u3002\n     PC/SP\u3067\u5225DOM\u306F\u4F5C\u3089\u305A\u3001CSS Grid\u306E\u5217\u6570\u5207\u308A\u66FF\u3048\u3060\u3051\u3067\u898B\u305F\u76EE\u3092\u5909\u3048\u308B\u3002\n     \u8A18\u4E8B\u30BF\u30A4\u30C8\u30EB(\u3092\u542B\u3080\u884C\u5168\u4F53)\u304C\u305D\u306E\u307E\u307E\u30EA\u30F3\u30AF\u306B\u306A\u308A\u3001\u5225\u9014\u300C\u5143\u8A18\u4E8B\u3092\u8AAD\u3080\u300D\u30DC\u30BF\u30F3\u306F\u7F6E\u304B\u306A\u3044\u3002\n     SERIES(\u9023\u8F09)\u306F\u901A\u5E38\u30EA\u30B9\u30C8\u306B\u6DF7\u305C\u305A\u3001buildSeriesBoxHtml\u3067\u5C02\u7528\u30DC\u30C3\u30AF\u30B9\u3068\u3057\u3066\u63CF\u753B\u3059\u308B\u3002 */\n  function buildItemHtml(item, opts) {\n    opts = opts || {};\n    var attrs = item.is_original ? \"\" : ' target=\"_blank\" rel=\"noopener\"';\n    // 2026-09-12: \u753B\u50CF\u304C\u751F\u6210\u3067\u304D\u3066\u3044\u308B\u8A18\u4E8B\u306F\u30B5\u30E0\u30CD\u30A4\u30EB\u8868\u793A\u3059\u308B(buildEventItemHtml\u3068\n    // \u540C\u3058.pn-item-thumb\u3092\u6D41\u7528)\u3002\u753B\u50CF\u304C\u7121\u3044\u8A18\u4E8B(\u904E\u53BB\u306E\u751F\u6210\u5931\u6557\u5206\u7B49)\u306F\u4ECA\u307E\u3067\u901A\u308A\u30C6\u30AD\u30B9\u30C8\u306E\u307F\u3002\n    var thumb = item.image ? '<div class=\"pn-item-thumb\"><img src=\"' + escapeHtml(item.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    var html = '<li class=\"pn-item\">';\n    html += '<a class=\"pn-item-link\" href=\"' + escapeHtml(item.url) + '\"' + attrs + '>';\n    if (opts.showCategory) {\n      html += '<div class=\"pn-item-top\"><span class=\"pn-badge\">' + escapeHtml(item.categoryLabel || \"\") + '</span></div>';\n    }\n    html += '<div class=\"pn-item-body\"><div class=\"pn-item-text\">' +\n      '<p class=\"pn-item-title\">' + escapeHtml(item.title) + '</p>' +\n      '<p class=\"pn-item-meta\">' + buildMetaHtml(item.source, item.published_at) + '</p>' +\n      '</div>' + thumb + '</div>';\n    html += '</a></li>';\n    return html;\n  }\n\n  /* ---------- FEATURE / pickup(\u30D1\u30CD\u30EB\u4E0A\u90E8\u306E\u30D2\u30FC\u30ED\u30FC\u67A0)----------\n     \u30AB\u30C6\u30B4\u30EA\u5185\u3067\u6700\u65B0\u306E1\u4EF6\u3092\u5927\u304D\u306A\u898B\u51FA\u3057\u3067\u898B\u305B\u3001\u7D9A\u304F\u6570\u4EF6\u3092\u30D4\u30C3\u30AF\u30A2\u30C3\u30D7\u3068\u3057\u3066\u6A2A\u306B\u6DFB\u3048\u308B\u3002\n     \u30D4\u30C3\u30AF\u30A2\u30C3\u30D7\u4EF6\u6570\u304C\u7121\u3051\u308C\u30701\u30AB\u30E9\u30E0\u306E\u30BD\u30ED\u8868\u793A\u306B\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\u3059\u308B\u3002 */\n  function buildFeatureSectionHtml(featureInnerHtml, pickupTitle, pickupItemsHtml) {\n    if (!pickupItemsHtml) return '<div class=\"pn-feature-solo\">' + featureInnerHtml + '</div>';\n    return '<div class=\"pn-feature\"><div>' + featureInnerHtml + '</div>' +\n      '<div class=\"pn-pickup\"><p class=\"pn-pickup-title\">' + escapeHtml(pickupTitle) + '</p>' +\n      '<ul class=\"pn-pickup-list\">' + pickupItemsHtml + '</ul></div></div>';\n  }\n\n  function buildFeatureNewsInnerHtml(item, showCategory) {\n    var attrs = item.is_original ? \"\" : ' target=\"_blank\" rel=\"noopener\"';\n    var badges = '<span class=\"pn-badge pn-badge--feature\">FEATURE</span>';\n    if (showCategory && item.categoryLabel) badges += '<span class=\"pn-badge\">' + escapeHtml(item.categoryLabel) + '</span>';\n    // 2026-09-12: \u753B\u50CF\u304C\u3042\u308B\u8A18\u4E8B\u306F\u30D8\u30C3\u30C9\u30E9\u30A4\u30F3\u306E\u4E0A\u306B\u30B5\u30E0\u30CD\u30A4\u30EB\u3092\u8868\u793A\u3059\u308B\u3002\n    var thumb = item.image ? '<div class=\"pn-feature-thumb\"><img src=\"' + escapeHtml(item.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    return '<a class=\"pn-item-link\" href=\"' + escapeHtml(item.url) + '\"' + attrs + '>' +\n      thumb +\n      '<div class=\"pn-item-top\">' + badges + '</div>' +\n      '<h3 class=\"pn-feature-headline\">' + escapeHtml(item.title) + '</h3>' +\n      '<p class=\"pn-feature-meta\">' + buildMetaHtml(item.source, item.published_at) + '</p>' +\n      '</a><div class=\"pn-feature-rule\"></div>';\n  }\n\n  function buildPickupNewsItemHtml(item) {\n    var attrs = item.is_original ? \"\" : ' target=\"_blank\" rel=\"noopener\"';\n    // 2026-09-12: \u753B\u50CF\u304C\u3042\u308B\u8A18\u4E8B\u306FbuildPickupEventItemHtml\u3068\u540C\u3058.pn-pickup-item-thumb\u3067\u8868\u793A\u3002\n    var thumb = item.image ? '<div class=\"pn-pickup-item-thumb\"><img src=\"' + escapeHtml(item.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    return '<li class=\"pn-pickup-item\"><a class=\"pn-pickup-item-link\" href=\"' + escapeHtml(item.url) + '\"' + attrs + '>' + thumb +\n      '<div class=\"pn-pickup-item-body\">' +\n      '<p class=\"pn-pickup-item-title\">' + escapeHtml(item.title) + '</p>' +\n      '<p class=\"pn-pickup-item-meta\">' + buildMetaHtml(item.source, item.published_at) + '</p>' +\n      '</div></a></li>';\n  }\n\n  /* ---------- SERIES\u5C02\u7528\u30DC\u30C3\u30AF\u30B9 ----------\n     \u6298\u308A\u305F\u305F\u307F\u6642\u306F\u76F4\u8FD14\u4EF6(\u6700\u65B0\u5074)\u306E\u307F\u8868\u793A\u3057\u3001\u65E2\u5B58\u306EexpandedSeries\u72B6\u614B+\n     data-action=\"toggle-series\"\u306E\u30A4\u30D9\u30F3\u30C8\u59D4\u8B72(initEvents\u53C2\u7167)\u3092\u305D\u306E\u307E\u307E\u518D\u5229\u7528\u3059\u308B\u3002 */\n  function buildSeriesBoxHtml(item) {\n    var members = item.members || [];\n    var total = item.event_count || members.length;\n    var expanded = !!state.expandedSeries[item.id];\n    var numbered = members.map(function (m, idx) { return { m: m, num: idx + 1, isLatest: idx === members.length - 1 }; });\n    var visible = expanded ? numbered : numbered.slice(-4);\n    var episodesHtml = visible.map(function (row) {\n      var mAttrs = row.m.is_original ? \"\" : ' target=\"_blank\" rel=\"noopener\"';\n      return '<a class=\"pn-episode\" href=\"' + escapeHtml(row.m.url) + '\"' + mAttrs + '>' +\n        '<span class=\"pn-episode-num' + (row.isLatest ? ' pn-episode-num--latest' : '') + '\">' + String(row.num).padStart(2, \"0\") + '</span>' +\n        '<span class=\"pn-episode-text\"><span class=\"pn-episode-title\">' + escapeHtml(row.m.title) + '</span>' +\n        '<span class=\"pn-episode-meta\">' + buildMetaHtml(row.m.source, row.m.published_at) + '</span></span></a>';\n    }).join(\"\");\n    var toggleHtml = members.length > 4\n      ? '<div class=\"pn-series-box-foot\"><button type=\"button\" class=\"pn-series-box-btn\" data-action=\"toggle-series\" data-id=\"' + escapeHtml(item.id) + '\">' +\n        (expanded ? \"\u9589\u3058\u308B\" : \"\u5168\" + total + \"\u4EF6\u3092\u898B\u308B\") +\n        '<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M9 6l6 6-6 6\" stroke=\"#000\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button></div>'\n      : '';\n    var attrs = item.is_original ? \"\" : ' target=\"_blank\" rel=\"noopener\"';\n    return '<div class=\"pn-series-box\">' +\n      '<div class=\"pn-series-box-head\"><span class=\"pn-badge pn-badge--series\">\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3</span>' +\n      '<h3 class=\"pn-series-box-title\"><a href=\"' + escapeHtml(item.url) + '\"' + attrs + '>' + escapeHtml(item.title) + '</a></h3></div>' +\n      '<p class=\"pn-series-box-range\">\u5168' + total + '\u4EF6</p>' +\n      '<div class=\"pn-episode-grid\">' + episodesHtml + '</div>' +\n      toggleHtml + '</div>';\n  }\n\n  /* ---------- \u7279\u96C6(\u7DE8\u96C6\u90E8\u30AD\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3)\u30AB\u30FC\u30C9 ----------\n     2026-08-30: \u5F53\u521D\u306F\u500B\u5225\u306E\u5358\u767A\u8A18\u4E8B\u3092\u4E26\u3079\u3066\u3044\u305F\u304C\u3001\u300C\u7279\u96C6\u300D\u306F\u672C\u6765\u3001\u8907\u6570\u306E\n     \u95A2\u9023\u30CB\u30E5\u30FC\u30B9\u30921\u672C\u306E\u30AA\u30EA\u30B8\u30CA\u30EB\u8A18\u4E8B\u3078\u675F\u306D\u305FSeries(\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3)\u8A18\u4E8B\u3092\n     \u6307\u3059(\u30E6\u30FC\u30B6\u30FC\u78BA\u8A8D\u6E08\u307F)\u3002\u30B5\u30E0\u30CD\u30A4\u30EB\u753B\u50CF\u3082\u3001\u8907\u6570\u30CB\u30E5\u30FC\u30B9\u3092\u8E0F\u307E\u3048\u3066\u8A2D\u8A08\u3059\u308B\n     \u5C02\u7528\u306E\u751F\u6210\u65B9\u5F0F(leafra-news-pipeline\u306Etimeline_thumbnail_runtime_prompt\u3001\n     \u5358\u767A\u8A18\u4E8B\u7528\u306E\u30B7\u30F3\u30D7\u30EB\u306A\u753B\u50CF\u751F\u6210\u3068\u306F\u5225\u7269)\u3092\u4F7F\u3046\u3002\u30AB\u30FC\u30C9\u306B\u306F\u3001\u307E\u3068\u3081\u5143\u306E\n     \u53C2\u7167\u8A18\u4E8B(\u51FA\u5178)\u4E00\u89A7\u3082\u4F75\u8A18\u3057\u3001\u300C\u66F8\u304D\u63DB\u3048\u305F\u30AA\u30EA\u30B8\u30CA\u30EB\u8A18\u4E8B+\u53C2\u7167\u5143\u306E\u660E\u793A\u300D\n     \u3068\u3044\u3046\u69CB\u6210\u3092\u5D29\u3055\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u3002ALL\u30BF\u30D6\u306E\u56FA\u5B9A\u8868\u793A\u30FB\u300C\u7279\u96C6\u300D\u30BF\u30D6\u306E\u4E00\u89A7\u3001\n     \u3069\u3061\u3089\u3082\u3053\u306E\u540C\u3058\u30AB\u30FC\u30C9\u3092\u4F7F\u3046(\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u5074\u3067\u624B\u52D5\u30AD\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3\u3055\u308C\u305F\n     id\u306B\"featured\": true\u304C\u7ACB\u3061\u3001\u5C02\u7528\u30BF\u30D6\u7528\u306B\"featured\"\u30AB\u30C6\u30B4\u30EA\u3078\u3082\u8907\u88FD\u914D\u7F6E\n     \u3055\u308C\u308B\u3002ALL\u30BF\u30D6\u3067\u306F\u305D\u306E\u8907\u88FD\u30D0\u30B1\u30C3\u30C8\u306F\u4F7F\u308F\u305A\u5404\u30A2\u30A4\u30C6\u30E0\u306Efeatured\u30D5\u30E9\u30B0\u3067\n     \u901A\u5E38\u30DE\u30FC\u30B8\u7D50\u679C\u304B\u3089\u62BD\u51FA\u3059\u308B\u3001renderNewsPanel\u53C2\u7167\u3001\u91CD\u8907\u56DE\u907F)\u3002 */\n  var FEATURED_CATEGORY_ID = \"featured\";\n\n  function buildFeaturedCardHtml(item) {\n    var attrs = item.is_original ? \"\" : ' target=\"_blank\" rel=\"noopener\"';\n    var thumb = item.image ? '<div class=\"pn-featured-card-thumb\"><img src=\"' + escapeHtml(item.image) + '\" alt=\"\" loading=\"lazy\"></div>' : \"\";\n    var isSeries = item.type === \"series\";\n    // 2026-08-31: \u300C\u7279\u96C6\u300D\u30BF\u30D6\u81EA\u4F53\u3092\u300C\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u300D\u306B\u6539\u79F0\u3057\u305F\u305F\u3081\u3001\u91CD\u8907\u3059\u308B\n    // \u300C\u7279\u96C6\u300D\u30D0\u30C3\u30B8\u306F\u5EC3\u6B62\u3057\u300C\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u300D\u30D0\u30C3\u30B8\u306E\u307F\u306B\u3057\u305F\u3002\n    var badges = isSeries ? '<span class=\"pn-badge pn-badge--series\">\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3</span>' : \"\";\n    var metaLine = isSeries\n      ? \"\u5168\" + (item.event_count || (item.members || []).length) + \"\u4EF6\u306E\u95A2\u9023\u30CB\u30E5\u30FC\u30B9\u3092\u3082\u3068\u306B\u4F5C\u6210\"\n      : buildMetaHtml(item.source, item.published_at);\n    var members = (item.members || []).slice(-4);\n    // \u53C2\u7167\u5143(\u51FA\u5178)\u4E00\u89A7\u3002\u30AB\u30FC\u30C9\u5168\u4F53\u30921\u3064\u306E\u30EA\u30F3\u30AF\u306B\u3059\u308B\u3068\u5185\u90E8\u306B\u30EA\u30F3\u30AF\u3092\n    // \u5165\u308C\u5B50\u306B\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u30E1\u30A4\u30F3\u306E\u753B\u50CF+\u898B\u51FA\u3057\u3078\u306E\u30EA\u30F3\u30AF\u3068\u306F\u5225\u306B\u3001\n    // \u30AB\u30FC\u30C9\u4E0B\u90E8\u306E\u72EC\u7ACB\u3057\u305F\u4E00\u89A7\u3068\u3057\u3066\u4E26\u3079\u308B(SERIES\u30DC\u30C3\u30AF\u30B9\u306Eepisode\u884C\u3068\n    // \u540C\u3058\u8003\u3048\u65B9)\u3002\n    var refsHtml = isSeries && members.length\n      ? '<ul class=\"pn-featured-card-refs\">' + members.map(function (m) {\n          var mAttrs = m.is_original ? \"\" : ' target=\"_blank\" rel=\"noopener\"';\n          return '<li><a href=\"' + escapeHtml(m.url) + '\"' + mAttrs + '>' + escapeHtml(m.title) + '</a>' +\n            '<span class=\"pn-featured-card-ref-source\">' + escapeHtml(m.source || \"\") + '</span></li>';\n        }).join(\"\") + '</ul>'\n      : \"\";\n    return '<div class=\"pn-featured-card\">' +\n      '<a class=\"pn-featured-card-link\" href=\"' + escapeHtml(item.url) + '\"' + attrs + '>' + thumb +\n      '<div class=\"pn-featured-card-body\">' + badges +\n      '<p class=\"pn-featured-card-title\">' + escapeHtml(item.title) + '</p>' +\n      '<p class=\"pn-featured-card-meta\">' + metaLine + '</p>' +\n      '</div></a>' + refsHtml + '</div>';\n  }\n\n  // \u7279\u96C6\u306E2\u4EF6\u76EE\u4EE5\u964D\u3092\u4E26\u3079\u308B\u3001\u5C0F\u3055\u3081\u306E\u30EA\u30B9\u30C8\u9805\u76EE(\u53C2\u7167\u5143\u4E00\u89A7\u307E\u3067\u306F\u51FA\u3055\u305A\n  // \u30B5\u30E0\u30CD\u30A4\u30EB+\u30BF\u30A4\u30C8\u30EB+\u4EF6\u6570\u306E\u307F\u3002\u65E2\u5B58\u306E.pn-pickup-item\u3068\u540C\u3058\u8003\u3048\u65B9)\u3002\n  // \u7279\u96C6\u5C02\u7528: \u901A\u5E38\u306Epn-pickup-item-thumb(56x56\u6B63\u65B9\u5F62)\u3067\u306F\u306A\u304F\u3001\u753B\u50CF\u3092\u4E3B\u5F79\u306B\n  // \u3057\u305F\u9762\u9577(\u6A2A\u9577)\u30B5\u30E0\u30CD\u30A4\u30EB\u3092\u4F7F\u3046(2026-08-31\u3001\u30E6\u30FC\u30B6\u30FC\u6307\u6458\u3067\u6B63\u65B9\u5F62\u304B\u3089\u5909\u66F4\u3002\n  // \u7279\u96C6\u306F\u5168\u4EF6\u30B5\u30E0\u30CD\u30A4\u30EB\u753B\u50CF\u304C\u4FDD\u8A3C\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u901A\u5E38\u30CB\u30E5\u30FC\u30B9\u306Epickup\u3088\u308A\n  // \u753B\u50CF\u3092\u5927\u304D\u304F\u898B\u305B\u308B)\u3002\n  function buildFeaturedPickupItemHtml(item) {\n    var attrs = item.is_original ? \"\" : ' target=\"_blank\" rel=\"noopener\"';\n    var thumb = item.image ? '<div class=\"pn-featured-pickup-thumb\"><img src=\"' + escapeHtml(item.image) + '\" alt=\"\" loading=\"lazy\"></div>' : \"\";\n    var meta = item.type === \"series\"\n      ? \"\u5168\" + (item.event_count || (item.members || []).length) + \"\u4EF6\u306E\u95A2\u9023\u30CB\u30E5\u30FC\u30B9\u3092\u3082\u3068\u306B\u4F5C\u6210\"\n      : buildMetaHtml(item.source, item.published_at);\n    return '<li class=\"pn-pickup-item pn-featured-pickup-item\"><a class=\"pn-pickup-item-link\" href=\"' + escapeHtml(item.url) + '\"' + attrs + '>' + thumb +\n      '<div class=\"pn-pickup-item-body\">' +\n      '<p class=\"pn-pickup-item-title\">' + escapeHtml(item.title) + '</p>' +\n      '<p class=\"pn-pickup-item-meta\">' + meta + '</p>' +\n      '</div></a></li>';\n  }\n\n  var FEATURED_PICKUP_COUNT = 5;\n\n  // \u7279\u96C6\u4E00\u89A7: \u6700\u65B01\u4EF6\u3092\u5927\u304D\u306A\u30AB\u30FC\u30C9\u3068\u3057\u3066\u4E0A\u90E8(PC\u306F\u5DE6)\u306B\u3001\u7D9A\u304F\u6570\u4EF6\u306F\u9762\u9577\n  // \u30B5\u30E0\u30CD\u30A4\u30EB\u4ED8\u304D\u306E\u5C0F\u3055\u3044\u30EA\u30B9\u30C8\u3067\u53F3(PC\u306F\u53F3\u30AB\u30E9\u30E0\u3001SP\u306F\u30AB\u30FC\u30C9\u306E\u4E0B)\u306B\u4E26\u3079\u308B\n  // (\u65E2\u5B58\u306EbuildFeatureSectionHtml\u3001\u901A\u5E38\u30CB\u30E5\u30FC\u30B9\u306EFEATURE+\u7D9A\u3051\u3066\u8AAD\u3080\u3068\u540C\u3058\n  // \u4ED5\u7D44\u307F\u3092\u518D\u5229\u7528)\u3002\u305D\u308C\u4EE5\u5916\u306E\u6B8B\u308A\u5168\u4EF6\u306F\u3001\u901A\u5E38\u30CB\u30E5\u30FC\u30B9\u306E\u300C\u65B0\u7740\u30CB\u30E5\u30FC\u30B9\u300D\n  // 2\u30AB\u30E9\u30E0\u30EA\u30B9\u30C8\u3068\u5168\u304F\u540C\u3058\u898B\u305F\u76EE\u30FB\u6319\u52D5\u3067\u300C\u305D\u306E\u4ED6\u306E\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u300D\u3068\u3044\u3046\n  // \u898B\u51FA\u3057\u306E\u4E0B\u306B\u4E26\u3079\u308B(2026-08-31\u3001\u30E6\u30FC\u30B6\u30FC\u8981\u671B)\u3002\n  function buildFeaturedGridHtml(items) {\n    if (items.length === 0) return \"\";\n    var hero = buildFeaturedCardHtml(items[0]);\n    var pickup = items.slice(1, 1 + FEATURED_PICKUP_COUNT);\n    var rest = items.slice(1 + FEATURED_PICKUP_COUNT);\n    var pickupHtml = pickup.map(buildFeaturedPickupItemHtml).join(\"\");\n    // 2026-09-12: \u901A\u5E38\u30CB\u30E5\u30FC\u30B9\u306E\u300CFEATURE\u8A18\u4E8B\u306E\u7D9A\u304D\u300D\u3092\u8AAD\u3080\u6587\u8108\u3068\u9055\u3044\u3001\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u306E\n    // \u30D4\u30C3\u30AF\u30A2\u30C3\u30D7\u306F\u5225\u3005\u306E\u307E\u3068\u3081\u8A18\u4E8B\u304C\u4E26\u3076\u3060\u3051\u306A\u306E\u3067\u300C\u7D9A\u3051\u3066\u8AAD\u3080\u300D\u3068\u3044\u3046\u6587\u8A00\u3060\u3068\n    // \u30AF\u30EA\u30C3\u30AF\u53EF\u80FD\u306ACTA\u306E\u3088\u3046\u306B\u8AA4\u89E3\u3055\u308C\u3084\u3059\u3044(\u30E6\u30FC\u30B6\u30FC\u6307\u6458)\u3002\u30E9\u30D9\u30EB\u3092\u898B\u51FA\u3057\u3068\u3057\u3066\n    // \u660E\u78BA\u306B\u8AAD\u3081\u308B\u6587\u8A00\u306B\u5909\u66F4\u3002\n    var html = buildFeatureSectionHtml(hero, \"\u65B0\u7740\u306E\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\", pickupHtml);\n    if (rest.length > 0) {\n      html += '<div class=\"pn-sec-label\"><span class=\"pn-sec-label-text\">\u305D\u306E\u4ED6\u306E\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3</span><span class=\"pn-sec-label-rule\"></span></div>';\n      html += '<ul class=\"pn-list\">' + rest.map(function (item) {\n        // \u300C\u65B0\u7740\u30CB\u30E5\u30FC\u30B9\u300D\u306E\u901A\u5E38\u30A2\u30A4\u30C6\u30E0\u3068\u5168\u304F\u540C\u3058buildItemHtml\u3092\u518D\u5229\u7528\u3057\u3001\n        // \u30AB\u30C6\u30B4\u30EA\u30D0\u30C3\u30B8\u306E\u4EE3\u308F\u308A\u306B\u300C\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u300D\u30D0\u30C3\u30B8\u3092\u51FA\u3059\u3002\n        return buildItemHtml(Object.assign({}, item, { categoryLabel: \"\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\" }), { showCategory: true });\n      }).join(\"\") + '</ul>';\n    }\n    return html;\n  }\n\n  /* ---------- \u30A4\u30D9\u30F3\u30C8\u7CFBFEATURE(\u65E5\u4ED8\u3092\u4E3B\u5F79\u306B\u3057\u305F\u30D2\u30FC\u30ED\u30FC) ----------\n     MY AREA\u30FB\u30A4\u30D9\u30F3\u30C8\u65BD\u8A2D\u30BF\u30D6\u306E\u30EA\u30FC\u30D5\u30E9\u5B9F\u30A4\u30D9\u30F3\u30C8\u3067\u5171\u901A\u5229\u7528\u3059\u308B\u3002 */\n  function buildFeatureEventInnerHtml(ev, badgeLabel) {\n    var d = ev.event_date ? new Date(ev.event_date + \"T00:00:00\") : null;\n    var validDate = d && !isNaN(d.getTime());\n    var dayLabel = validDate ? (d.getMonth() + 1) + \"/\" + String(d.getDate()).padStart(2, \"0\") : \"\";\n    var dowLabel = validDate ? \"(\" + [\"\u65E5\", \"\u6708\", \"\u706B\", \"\u6C34\", \"\u6728\", \"\u91D1\", \"\u571F\"][d.getDay()] + \")\" : \"\";\n    var metaParts = [];\n    if (ev.venue) metaParts.push(ev.venue);\n    if (ev.event_date) metaParts.push(formatDate(ev.event_date) + \"\u958B\u50AC\");\n    var thumb = ev.image ? '<div class=\"pn-feature-event-thumb\"><img src=\"' + escapeHtml(ev.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    return '<a class=\"pn-item-link\" href=\"/blogs/media/' + escapeHtml(ev.slug) + '\">' +\n      '<div class=\"pn-feature-event\">' +\n      '<div class=\"pn-feature-event-date\"><span class=\"pn-feature-event-day\">' + escapeHtml(dayLabel) + '</span>' +\n      '<span class=\"pn-feature-event-dow\">' + escapeHtml(dowLabel) + '</span></div>' +\n      thumb +\n      '<div class=\"pn-feature-event-body\">' +\n      '<div class=\"pn-item-top\"><span class=\"pn-badge pn-badge--feature\">' + escapeHtml(badgeLabel) + '</span>' +\n      (ev.regionLabel ? '<span class=\"pn-badge pn-badge--region\">' + escapeHtml(ev.regionLabel) + '</span>' : '') + '</div>' +\n      '<h3 class=\"pn-feature-event-title\">' + escapeHtml(ev.title) + '</h3>' +\n      '<p class=\"pn-feature-event-meta\">' + escapeHtml(metaParts.join(\" \u30FB \")) + '</p>' +\n      '</div></div></a>';\n  }\n\n  function buildPickupEventItemHtml(ev) {\n    var meta = formatDate(ev.event_date) + (ev.regionLabel ? \" \u30FB \" + ev.regionLabel : \"\");\n    var thumb = ev.image ? '<div class=\"pn-pickup-item-thumb\"><img src=\"' + escapeHtml(ev.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    return '<li class=\"pn-pickup-item\"><a class=\"pn-pickup-item-link\" href=\"/blogs/media/' + escapeHtml(ev.slug) + '\">' + thumb +\n      '<div class=\"pn-pickup-item-body\">' +\n      '<p class=\"pn-pickup-item-title\">' + escapeHtml(ev.title) + '</p>' +\n      '<p class=\"pn-pickup-item-meta\">' + escapeHtml(meta) + '</p>' +\n      '</div></a></li>';\n  }\n\n  // MY AREA\u30FB\u30A4\u30D9\u30F3\u30C8\u65BD\u8A2D\u30BF\u30D6\u3067\u4F7F\u3046\u30EA\u30FC\u30D5\u30E9\u672C\u4F53\u30A4\u30D9\u30F3\u30C8\u306E\u884C(\u540C\u3058.pn-item\u69CB\u9020\u3092\u6D41\u7528)\u3002\n  // \u753B\u50CF\u304C\u3042\u308B\u30A4\u30D9\u30F3\u30C8\u306E\u307F.pn-item-thumb\u3067\u53F3\u5074\u306B\u5C0F\u3055\u304F\u8868\u793A\u3059\u308B(\u753B\u50CF\u304C\u306A\u3044\u5927\u534A\u306E\u30A4\u30D9\u30F3\u30C8\u306F\u4ECA\u307E\u3067\u901A\u308A\u30C6\u30AD\u30B9\u30C8\u306E\u307F)\u3002\n  function buildEventItemHtml(ev) {\n    var metaParts = [];\n    if (ev.venue) metaParts.push(ev.venue);\n    metaParts.push(formatDate(ev.event_date));\n    var thumb = ev.image ? '<div class=\"pn-item-thumb\"><img src=\"' + escapeHtml(ev.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    var html = '<li class=\"pn-item\">';\n    html += '<a class=\"pn-item-link\" href=\"/blogs/media/' + escapeHtml(ev.slug) + '\">';\n    html += '<div class=\"pn-item-top\"><span class=\"pn-badge\">EVENT</span>';\n    if (ev.regionLabel) html += '<span class=\"pn-badge pn-badge--region\">' + escapeHtml(ev.regionLabel) + '</span>';\n    html += '</div>';\n    html += '<div class=\"pn-item-body\"><div class=\"pn-item-text\">' +\n      '<p class=\"pn-item-title\">' + escapeHtml(ev.title) + '</p>' +\n      '<p class=\"pn-item-meta\">' + escapeHtml(metaParts.join(\" \u30FB \")) + '</p>' +\n      '</div>' + thumb + '</div>';\n    html += '</a></li>';\n    return html;\n  }\n\n  var EVENTS_FACILITIES_TAB_ID = \"events_facilities\";\n\n  function buildEventsFacilitiesIntroHtml() {\n    var html = '<div class=\"pn-events-intro\">' +\n      '<p class=\"pn-events-intro-text\">\u3053\u3053\u306B\u4E26\u3076\u306E\u306F\u3001\u30CB\u30E5\u30FC\u30B9\u3067\u5831\u3058\u3089\u308C\u305F\u690D\u7269\u30FB\u5712\u82B8\u30FB\u8FB2\u696D\u95A2\u9023\u30A4\u30D9\u30F3\u30C8\u306E\u8A71\u984C\u3067\u3059\u3002\u5B9F\u969B\u306B\u6765\u5834\u30FB\u53C2\u52A0\u3067\u304D\u308B\u30EA\u30FC\u30D5\u30E9\u63B2\u8F09\u306E\u30EF\u30FC\u30AF\u30B7\u30E7\u30C3\u30D7\u30FB\u30A4\u30D9\u30F3\u30C8\u60C5\u5831\u3068\u306F\u5225\u3082\u306E\u306A\u306E\u3067\u3001\u3042\u308F\u305B\u3066\u3054\u6848\u5185\u3057\u307E\u3059\u3002</p>' +\n      '<div class=\"pn-events-intro-ctas\">' +\n      '<a class=\"pn-events-cta-btn\" href=\"/blogs/media/event-list\">\u690D\u7269\u30A4\u30D9\u30F3\u30C8\u3092\u63A2\u3059</a>' +\n      '<a class=\"pn-events-cta-btn pn-events-cta-btn--outline\" href=\"/pages/event-submit\">\u690D\u7269\u30A4\u30D9\u30F3\u30C8\u3092\u63B2\u8F09\u3059\u308B</a>' +\n      '</div></div>';\n    if (state.regionEventsPreviewLoaded) {\n      var carouselsHtml = COMPACT ? \"\" : buildRegionCarouselsHtml();\n      if (carouselsHtml) {\n        html += '<div class=\"pn-events-preview\">' +\n          '<p class=\"pn-events-preview-title\">\u30EA\u30FC\u30D5\u30E9\u63B2\u8F09\u4E2D\u306E\u30A4\u30D9\u30F3\u30C8(\u30A8\u30EA\u30A2\u5225)</p>' +\n          carouselsHtml +\n          '</div>';\n      } else if (COMPACT) {\n        html += '<p class=\"pn-compact-more\"><a href=\"/blogs/media/event-list\">\u690D\u7269\u30A4\u30D9\u30F3\u30C8\u3092\u898B\u308B \u2192</a></p>';\n      }\n    }\n    return html;\n  }\n\n  // compact\u30E2\u30FC\u30C9(\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8\u57CB\u3081\u8FBC\u307F\u7528)\u306E\u300C\u3082\u3063\u3068\u898B\u308B\u300D\u30EA\u30F3\u30AF\u3092\u30EA\u30B9\u30C8\u306E\u6700\u5F8C\u306B\u8DB3\u3059\u3002\n  function appendCompactMoreLink(html) {\n    return html + '<p class=\"pn-compact-more\"><a href=\"' + escapeHtml(COMPACT_MORE_URL) + '\">\u3082\u3063\u3068\u898B\u308B \u2192</a></p>';\n  }\n\n  function renderNewsPanel(tab) {\n    var panelEl = qs('.pn-panel[data-tab-id=\"' + tab.id + '\"] .pn-panel-body');\n    if (!panelEl) return;\n    var html = tab.id === EVENTS_FACILITIES_TAB_ID ? buildEventsFacilitiesIntroHtml() : \"\";\n    if (state.feedError) {\n      html += '<p class=\"pn-error-state\">\u30CB\u30E5\u30FC\u30B9\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002</p>';\n    } else if (!state.feedLoaded) {\n      html += '<p class=\"pn-empty-state\">\u8AAD\u307F\u8FBC\u307F\u4E2D...</p>';\n    } else {\n      var items;\n      var showCategory = tab.id === \"ALL\";\n      if (showCategory) {\n        items = [];\n        Object.keys(state.feedByCategory).forEach(function (catId) {\n          // \"featured\"\u306F\u30CB\u30E5\u30FC\u30B9\u5404\u30AB\u30C6\u30B4\u30EA\u3068\u306F\u5225\u306B\u3001Shopify\u304B\u3089\u76F4\u63A5\u53D6\u5F97\u3057\u305F\n          // \u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u8A18\u4E8B\u306E\u5B8C\u5168\u306A\u30A2\u30FC\u30AB\u30A4\u30D6(2026-08-31\u301C)\u3002ALL\u306E\u901A\u5E38\n          // \u30DE\u30FC\u30B8\u306B\u306F\u542B\u3081\u305A\u3001\u4E0B\u3067\u5225\u9014pinned\u8868\u793A\u3059\u308B\u3002\n          if (catId === FEATURED_CATEGORY_ID) return;\n          items = items.concat(state.feedByCategory[catId]);\n        });\n      } else {\n        items = state.feedByCategory[tab.id] || [];\n      }\n      items = items.filter(matchesTagFilters).slice();\n      items.sort(function (a, b) { return (b.published_at || \"\").localeCompare(a.published_at || \"\"); });\n\n      // ALL\u30BF\u30D6\u3067\u306F\u300C\u7279\u96C6\u300D\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u3046\u3061\u6700\u65B0\u306E1\u4EF6\u3060\u3051\u3092\u3001\u65B0\u7740\u9806\u3068\u306F\u5225\u306B\n      // \u5E38\u306B\u6700\u4E0A\u90E8\u3078\u56FA\u5B9A\u8868\u793A\u3059\u308B(\u5168\u4EF6\u306F\u300C\u7279\u96C6\u300D\u30BF\u30D6=\u4E00\u89A7\u30DA\u30FC\u30B8\u76F8\u5F53\u306E\u65B9\u3067\n      // \u898B\u305B\u308B)\u3002\u300C\u7279\u96C6\u300D\u30BF\u30D6\u3078\u306E\u52D5\u7DDA\u3068\u3057\u3066\u3001\u672B\u5C3E\u306B\u30EA\u30F3\u30AF\u3092\u6DFB\u3048\u308B\u3002\n      if (showCategory) {\n        var featuredBucket = state.feedByCategory[FEATURED_CATEGORY_ID] || [];\n        if (featuredBucket.length > 0) {\n          // 1\u4EF6\u3060\u3051\u306A\u306E\u3067\u30AB\u30FC\u30C9\u5358\u4F53\u3092\u305D\u306E\u307E\u307E\u5168\u5E45\u3067\u898B\u305B\u308B(\u30B0\u30EA\u30C3\u30C9\u3067\u56F2\u3080\u5FC5\u8981\u306F\u7121\u3044)\u3002\n          html += buildFeaturedCardHtml(featuredBucket[0]);\n          // 2026-08-31: \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF(?tab=featured)\u3067\u306FSEO\u8CC7\u7523\u306B\u306A\u3089\u306A\u3044\u3068\u306E\n          // \u6307\u6458\u3092\u53D7\u3051\u3001\u72EC\u7ACB\u3057\u305F\u30B5\u30FC\u30D0\u30FC\u30B5\u30A4\u30C9\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u306E\u5C02\u7528\u30DA\u30FC\u30B8\n          // (/pages/timeline\u3001shop.metafields.botareco.timeline_archive\u3092\n          // Liquid\u3067\u76F4\u63A5\u63CF\u753B)\u3078\u306E\u30EA\u30F3\u30AF\u306B\u5909\u66F4\u3057\u305F\u3002\n          html += '<p class=\"pn-featured-more\"><a href=\"/pages/timeline\">\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u306E\u4E00\u89A7\u3092\u898B\u308B \u2192</a></p>';\n        }\n      }\n\n      if (items.length === 0) {\n        html += '<ul class=\"pn-list\"><li class=\"pn-empty-state\">\u3053\u306E\u30AB\u30C6\u30B4\u30EA\u306B\u306F\u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u30CB\u30E5\u30FC\u30B9\u304C\u3042\u308A\u307E\u305B\u3093\u3002</li></ul>';\n      } else if (tab.id === FEATURED_CATEGORY_ID) {\n        // \u300C\u7279\u96C6\u300D\u30BF\u30D6\u81EA\u4F53\u306F\u4ED6\u306E\u30AB\u30C6\u30B4\u30EA\u3068\u9055\u3044\u3001\u6C4E\u7528\u306EFEATURE+\u7D9A\u3051\u3066\u8AAD\u3080\u3078\u306F\n        // \u4EFB\u305B\u305A\u3001\u5168\u30A2\u30A4\u30C6\u30E0\u3092\u753B\u50CF\u4ED8\u304D\u30AB\u30FC\u30C9\u306E\u30B0\u30EA\u30C3\u30C9\u3068\u3057\u3066\u4E26\u3079\u308B\u3002\n        html += buildFeaturedGridHtml(COMPACT ? items.slice(0, 3) : items);\n        if (COMPACT) {\n          html = appendCompactMoreLink(html);\n        } else {\n          // 2026-09-12: /pages/timeline(SSR\u4E00\u89A7\u30DA\u30FC\u30B8)\u3078\u306E\u5C0E\u7DDA\u304CALL\u30BF\u30D6\u306E\n          // \u56FA\u5B9A\u8868\u793A\u6761\u4EF6\u306B\u4F9D\u5B58\u3059\u308B1\u7B87\u6240\u3057\u304B\u7121\u304F\u3001\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u30BF\u30D6\u81EA\u4F53\u304B\u3089\n          // \u4E00\u89A7\u30DA\u30FC\u30B8\u3078\u8FBF\u308C\u306A\u304B\u3063\u305F(\u30E6\u30FC\u30B6\u30FC\u6307\u6458)\u3002\u30BF\u30D6\u3092\u958B\u3051\u3070\u5FC5\u305A\u898B\u3048\u308B\n          // \u4F4D\u7F6E\u306B\u6052\u5E38\u7684\u306A\u30EA\u30F3\u30AF\u3092\u8FFD\u52A0\u3059\u308B\u3002\n          html += '<p class=\"pn-featured-more\"><a href=\"/pages/timeline\">\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u4E00\u89A7\u30DA\u30FC\u30B8(\u5168\u4EF6\u30FBSEO\u5BFE\u5FDC\u7248)\u3092\u898B\u308B \u2192</a></p>';\n        }\n      } else {\n        var seriesItems = items.filter(function (it) { return it.type === \"series\"; });\n        var normalItems = items.filter(function (it) { return it.type !== \"series\"; });\n        var feature = normalItems[0];\n        // 2026-09-12: compact\u30E2\u30FC\u30C9(\u30DB\u30FC\u30E0\u57CB\u3081\u8FBC\u307F)\u3067\u3082FEATURE\u306E\u6A2A\u306B\u300C\u7D9A\u3051\u3066\u8AAD\u3080\u300D\n        // \u30D4\u30C3\u30AF\u30A2\u30C3\u30D7(LATEST\u76F8\u5F53\u306E\u30B5\u30A4\u30C9\u30EA\u30B9\u30C8)\u3092\u8868\u793A\u3059\u308B\u3088\u3046\u306B\u5909\u66F4\u3002\u4EE5\u524D\u306F\n        // \u30D4\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u7A7A\u306B\u3057\u3066pn-feature-solo(\u30B5\u30A4\u30C9\u30EA\u30B9\u30C8\u7121\u3057\u306E\u5358\u4F53\u8868\u793A)\u306B\n        // \u3057\u3066\u3044\u305F\u304C\u3001\u5E45\u304C\u5E83\u304C\u3063\u305F\u72B6\u614B\u3060\u30681\u679A\u306E\u8A18\u4E8B\u3060\u3051\u304C\u9593\u5EF6\u3073\u3057\u3066\u898B\u3048\u308B\n        // \u305F\u3081(\u30E6\u30FC\u30B6\u30FC\u6307\u6458\u3001\u6DFB\u4ED8\u306E\u53C2\u8003\u30C7\u30B6\u30A4\u30F3\u306E\u901A\u308AFEATURE+LATEST\u306E2\u30AB\u30E9\u30E0\u3078)\u3002\n        // \u9023\u8F09(SERIES)\u30DC\u30C3\u30AF\u30B9\u306Fcompact\u3067\u306F\u5F15\u304D\u7D9A\u304D\u975E\u8868\u793A\u3002\n        var pickup = normalItems.slice(1, 5);\n        var rest = COMPACT ? normalItems.slice(5, 5 + COMPACT_ITEM_LIMIT) : normalItems.slice(5);\n\n        if (feature) {\n          var featureInner = buildFeatureNewsInnerHtml(feature, showCategory);\n          var pickupHtml = pickup.map(buildPickupNewsItemHtml).join(\"\");\n          html += buildFeatureSectionHtml(featureInner, \"\u7D9A\u3051\u3066\u8AAD\u3080\", pickupHtml);\n        }\n\n        // ALL\u30BF\u30D6\u306F\u7279\u96C6(pinned)\u3068\u5225\u306B\u3001\u901A\u5E38\u306E\u30B7\u30EA\u30FC\u30BA\u30DC\u30C3\u30AF\u30B9\u306F\u6700\u65B0\u306E1\u4EF6\u3060\u3051\u3067\n        // \u5341\u5206(\u5168\u4EF6\u51FA\u3059\u3068\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u8A18\u4E8B\u3060\u3089\u3051\u306B\u306A\u308A\u5197\u9577\u306A\u305F\u3081)\u3002\u500B\u5225\u30AB\u30C6\u30B4\u30EA\n        // \u30BF\u30D6\u306F\u305D\u306E\u30AB\u30C6\u30B4\u30EA\u5185\u306E\u4EF6\u6570\u304C\u3082\u3068\u3082\u3068\u5C11\u306A\u3044\u305F\u3081\u3001\u5F93\u6765\u901A\u308A\u5168\u4EF6\u8868\u793A\u3059\u308B\u3002\n        if (!COMPACT) {\n          var seriesToShow = showCategory ? seriesItems.slice(0, 1) : seriesItems;\n          seriesToShow.forEach(function (s) { html += buildSeriesBoxHtml(s); });\n        }\n\n        if (rest.length > 0) {\n          html += '<div class=\"pn-sec-label\"><span class=\"pn-sec-label-text\">\u65B0\u7740\u30CB\u30E5\u30FC\u30B9</span><span class=\"pn-sec-label-rule\"></span></div>';\n          // \u3068\u3053\u308D\u3069\u3053\u308D(6\u4EF6\u3054\u3068)\u306B\u5E83\u544A\u3092\u631F\u3080\u3002\u30DB\u30FC\u30E0\u57CB\u3081\u8FBC\u307F(compact)\u306F\n          // \u8868\u793A\u4EF6\u6570\u304C\u5C11\u306A\u3044\u305F\u3081\u5E83\u544A\u306F\u5165\u308C\u306A\u3044\u3002\n          var AD_EVERY = 6;\n          var restHtml = rest.map(function (item, i) {\n            var itemHtml = buildItemHtml(item, { showCategory: showCategory });\n            if (!COMPACT && i > 0 && i % AD_EVERY === 0) itemHtml = buildAdUnitHtml(\"pn-item pn-item--ad\") + itemHtml;\n            return itemHtml;\n          }).join(\"\");\n          html += '<ul class=\"pn-list\">' + restHtml + '</ul>';\n        }\n        if (COMPACT) html = appendCompactMoreLink(html);\n      }\n    }\n    panelEl.innerHTML = html;\n    updateScrollerHeight();\n    activateAdUnitsWithin(panelEl);\n  }\n\n  /* ---------- MY AREA ---------- */\n  function renderMyAreaPanel() {\n    var panelEl = qs('.pn-panel[data-tab-id=\"MY_AREA\"] .pn-panel-body');\n    if (!panelEl) return;\n    var html;\n    if (!CUSTOMER_EMAIL) {\n      html = '<div class=\"pn-my-area-empty\"><p>MY AREA\u6A5F\u80FD\u306F\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u3068\u3054\u5229\u7528\u3044\u305F\u3060\u3051\u307E\u3059\u3002\u30ED\u30B0\u30A4\u30F3\u5F8C\u3001\u6C17\u306B\u306A\u308B\u30A8\u30EA\u30A2\u3092\u30D5\u30A9\u30ED\u30FC\u3059\u308B\u3068\u6700\u65B0\u30A4\u30D9\u30F3\u30C8\u304C\u3053\u3053\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002</p>' +\n        '<a class=\"pn-my-area-empty-btn\" href=\"/account/login?return_url=' + encodeURIComponent(window.location.pathname + window.location.search) + '\">\u30ED\u30B0\u30A4\u30F3\u3059\u308B</a></div>';\n    } else if (!state.myAreaLoaded) {\n      html = '<p class=\"pn-empty-state\">\u8AAD\u307F\u8FBC\u307F\u4E2D...</p>';\n    } else if (state.followedRegions.length === 0) {\n      html = '<div class=\"pn-my-area-empty\"><p>\u30DE\u30A4\u30A8\u30EA\u30A2\u304C\u307E\u3060\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30D5\u30A9\u30ED\u30FC\u3057\u305F\u3044\u30A8\u30EA\u30A2\u3092\u9078\u3076\u3068\u3001\u305D\u306E\u30A8\u30EA\u30A2\u306E\u6700\u65B0\u30A4\u30D9\u30F3\u30C8\u304C\u3053\u3053\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002</p>' +\n        '<a class=\"pn-my-area-empty-btn\" href=\"' + escapeHtml(AREAS_URL) + '\">\u30DE\u30A4\u30A8\u30EA\u30A2\u3092\u8A2D\u5B9A\u3059\u308B</a></div>';\n    } else if (state.myAreaEvents.length === 0) {\n      html = '<ul class=\"pn-list\"><li class=\"pn-empty-state\">\u30D5\u30A9\u30ED\u30FC\u4E2D\u306E\u30A8\u30EA\u30A2\u3067\u3001\u76F4\u8FD1\u306E\u30A4\u30D9\u30F3\u30C8\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002</li></ul>';\n    } else {\n      var maFeature = state.myAreaEvents[0];\n      var maPickup = COMPACT ? [] : state.myAreaEvents.slice(1, 5);\n      var maRest = COMPACT ? state.myAreaEvents.slice(1, 1 + COMPACT_ITEM_LIMIT) : state.myAreaEvents.slice(5);\n      var maFeatureInner = buildFeatureEventInnerHtml(maFeature, \"NEXT EVENT\");\n      var maPickupHtml = maPickup.map(buildPickupEventItemHtml).join(\"\");\n      html = buildFeatureSectionHtml(maFeatureInner, \"\u8FD1\u65E5\u958B\u50AC\", maPickupHtml);\n      if (maRest.length > 0) {\n        html += '<div class=\"pn-sec-label\"><span class=\"pn-sec-label-text\">\u958B\u50AC\u4E88\u5B9A\u306E\u30A4\u30D9\u30F3\u30C8</span><span class=\"pn-sec-label-rule\"></span></div>';\n        html += '<ul class=\"pn-list\">' + maRest.map(buildEventItemHtml).join(\"\") + '</ul>';\n      }\n      if (COMPACT) html = appendCompactMoreLink(html);\n    }\n    panelEl.innerHTML = html;\n    updateScrollerHeight();\n  }\n\n  /* ---------- \u9031\u672B\u306E\u304A\u3067\u304B\u3051\u30D7\u30E9\u30F3(\u30EA\u30FC\u30D5\u30EC\u30C3\u30C8/itineraries) ----------\n     itineraries\u306FSupabase Edge Function(process-consultation)\u7D4C\u7531\u3067\u3057\u304B\u53D6\u5F97\u3067\u304D\u306A\u3044\u305F\u3081\u3001\n     \u3053\u306E\u30BF\u30D6\u306B\u9650\u308A\u30CB\u30E5\u30FC\u30B9\u30D5\u30A3\u30FC\u30C9(Cloudflare Workers)\u3067\u306F\u306A\u304FSupabase\u3092\u76F4\u63A5\u53E9\u304F\u3002\n     main-page-leaflets.liquid\u304C\u4F7F\u3063\u3066\u3044\u308B\u65E2\u5B58\u306E\u516C\u958B\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8(get_public_itineraries)\u3092\u518D\u5229\u7528\u3059\u308B\u3002 */\n  var WEEKEND_PLANS_TAB_ID = \"weekend_plans\";\n\n  function dayLabelFor(days) {\n    if (!days) return \"\";\n    return days === 1 ? \"1day\" : days + \"days\";\n  }\n\n  function buildFeatureLeafletInnerHtml(lf) {\n    var badges = '<span class=\"pn-badge pn-badge--feature\">WEEKEND PICK</span>';\n    if (lf.areaLabel) badges += '<span class=\"pn-badge pn-badge--region\">' + escapeHtml(lf.areaLabel) + '</span>';\n    if (lf.isOfficial) badges += '<span class=\"pn-badge pn-badge--official\">\u516C\u5F0F</span>';\n    var thumb = lf.image ? '<div class=\"pn-feature-event-thumb\"><img src=\"' + escapeHtml(lf.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    return '<a class=\"pn-item-link\" href=\"/pages/leaflet-share?t=' + escapeHtml(lf.shareToken) + '\">' +\n      '<div class=\"pn-feature-event\">' + thumb +\n      '<div class=\"pn-feature-event-body\">' +\n      '<div class=\"pn-item-top\">' + badges + '</div>' +\n      '<h3 class=\"pn-feature-event-title\">' + escapeHtml(lf.title) + '</h3>' +\n      '<p class=\"pn-feature-event-meta\">' + escapeHtml(lf.dayLabel) + '</p>' +\n      '</div></div></a>';\n  }\n\n  function buildPickupLeafletItemHtml(lf) {\n    var thumb = lf.image ? '<div class=\"pn-pickup-item-thumb\"><img src=\"' + escapeHtml(lf.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    var meta = [lf.areaLabel, lf.dayLabel].filter(Boolean).join(\" \u30FB \");\n    return '<li class=\"pn-pickup-item\"><a class=\"pn-pickup-item-link\" href=\"/pages/leaflet-share?t=' + escapeHtml(lf.shareToken) + '\">' + thumb +\n      '<div class=\"pn-pickup-item-body\">' +\n      '<p class=\"pn-pickup-item-title\">' + escapeHtml(lf.title) + '</p>' +\n      '<p class=\"pn-pickup-item-meta\">' + escapeHtml(meta) + '</p>' +\n      '</div></a></li>';\n  }\n\n  function buildLeafletListItemHtml(lf) {\n    var thumb = lf.image ? '<div class=\"pn-item-thumb\"><img src=\"' + escapeHtml(lf.image) + '\" alt=\"\" loading=\"lazy\"></div>' : '';\n    var meta = [lf.areaLabel, lf.dayLabel].filter(Boolean).join(\" \u30FB \");\n    return '<li class=\"pn-item\"><a class=\"pn-item-link\" href=\"/pages/leaflet-share?t=' + escapeHtml(lf.shareToken) + '\">' +\n      (lf.isOfficial ? '<div class=\"pn-item-top\"><span class=\"pn-badge pn-badge--official\">\u516C\u5F0F</span></div>' : '') +\n      '<div class=\"pn-item-body\"><div class=\"pn-item-text\">' +\n      '<p class=\"pn-item-title\">' + escapeHtml(lf.title) + '</p>' +\n      '<p class=\"pn-item-meta\">' + escapeHtml(meta) + '</p>' +\n      '</div>' + thumb + '</div></a></li>';\n  }\n\n  function renderWeekendPlansPanel() {\n    var panelEl = qs('.pn-panel[data-tab-id=\"' + WEEKEND_PLANS_TAB_ID + '\"] .pn-panel-body');\n    if (!panelEl) return;\n    var html;\n    if (state.weekendPlansError) {\n      html = '<p class=\"pn-error-state\">\u304A\u3067\u304B\u3051\u30D7\u30E9\u30F3\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002</p>';\n    } else if (!state.weekendPlansLoaded) {\n      html = '<p class=\"pn-empty-state\">\u8AAD\u307F\u8FBC\u307F\u4E2D...</p>';\n    } else if (state.weekendPlans.length === 0) {\n      html = '<p class=\"pn-empty-state\">\u516C\u958B\u3055\u308C\u3066\u3044\u308B\u304A\u3067\u304B\u3051\u30D7\u30E9\u30F3\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002</p>';\n    } else {\n      var feature = state.weekendPlans[0];\n      var pickup = COMPACT ? [] : state.weekendPlans.slice(1, 5);\n      var rest = COMPACT ? state.weekendPlans.slice(1, 1 + COMPACT_ITEM_LIMIT) : state.weekendPlans.slice(5);\n      var featureInner = buildFeatureLeafletInnerHtml(feature);\n      var pickupHtml = pickup.map(buildPickupLeafletItemHtml).join(\"\");\n      html = buildFeatureSectionHtml(featureInner, \"\u4ECA\u9031\u672B\u306E\u304A\u3059\u3059\u3081\", pickupHtml);\n      if (rest.length > 0) {\n        html += '<div class=\"pn-sec-label\"><span class=\"pn-sec-label-text\">\u307F\u3093\u306A\u306E\u304A\u3067\u304B\u3051\u30D7\u30E9\u30F3</span><span class=\"pn-sec-label-rule\"></span></div>';\n        var wpRestHtml = rest.map(function (lf, i) {\n          var itemHtml = buildLeafletListItemHtml(lf);\n          if (!COMPACT && i > 0 && i % 6 === 0) itemHtml = buildAdUnitHtml(\"pn-item pn-item--ad\") + itemHtml;\n          return itemHtml;\n        }).join(\"\");\n        html += '<ul class=\"pn-list\">' + wpRestHtml + '</ul>';\n      }\n      if (COMPACT) html = appendCompactMoreLink(html);\n    }\n    if (!COMPACT) html += '<p class=\"pn-weekend-plans-create\"><a href=\"/pages/my-itineraries\">\uFF0B \u81EA\u5206\u306E\u304A\u3067\u304B\u3051\u30D7\u30E9\u30F3\u3092\u4F5C\u308B</a></p>';\n    panelEl.innerHTML = html;\n    updateScrollerHeight();\n    activateAdUnitsWithin(panelEl);\n  }\n\n  function loadWeekendPlans() {\n    var cfg = window.SUPABASE_CONFIG;\n    if (!cfg || !cfg.functionsBase || !cfg.key) {\n      state.weekendPlansLoaded = true;\n      state.weekendPlansError = true;\n      renderWeekendPlansPanel();\n      return;\n    }\n    fetch(cfg.functionsBase + \"/process-consultation?action=get_public_itineraries\", {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\", \"Authorization\": \"Bearer \" + cfg.key },\n      body: JSON.stringify({ per_page: 40 })\n    }).then(function (res) {\n      if (!res.ok) throw new Error(\"itineraries http \" + res.status);\n      return res.json();\n    }).then(function (data) {\n      if (!data.success || !data.leaflets) throw new Error(\"itineraries payload error\");\n      var leaflets = data.leaflets.map(function (lf) {\n        return {\n          title: lf.title,\n          image: (lf.event_images && lf.event_images[0]) || \"\",\n          areaLabel: (lf.area_label && lf.area_label !== \"\u305D\u306E\u4ED6\") ? lf.area_label : \"\",\n          isOfficial: lf.author_type === \"official\",\n          isTemplate: !!lf.is_template,\n          dayLabel: dayLabelFor(lf.days),\n          shareToken: lf.share_token\n        };\n      });\n      // \u516C\u5F0F\u306E\u304A\u3059\u3059\u3081\u30D7\u30E9\u30F3\u3092\u5148\u982D\u306B\u5BC4\u305B\u308B(\u305D\u308C\u4EE5\u5916\u306F\u53D6\u5F97\u9806=\u65B0\u7740\u9806\u306E\u307E\u307E)\u3002\n      leaflets.sort(function (a, b) {\n        var aOfficial = (a.isOfficial && a.isTemplate) ? 1 : 0;\n        var bOfficial = (b.isOfficial && b.isTemplate) ? 1 : 0;\n        return bOfficial - aOfficial;\n      });\n      state.weekendPlans = leaflets;\n      state.weekendPlansLoaded = true;\n      renderWeekendPlansPanel();\n    }).catch(function (err) {\n      console.error(\"[plant-news] weekend plans load failed\", err);\n      state.weekendPlansLoaded = true;\n      state.weekendPlansError = true;\n      renderWeekendPlansPanel();\n    });\n  }\n\n  function renderAllPanels() {\n    TABS.forEach(function (tab) {\n      if (tab.id === \"MY_AREA\") renderMyAreaPanel();\n      else if (tab.id === WEEKEND_PLANS_TAB_ID) renderWeekendPlansPanel();\n      else renderNewsPanel(tab);\n    });\n  }\n\n  /* ---------- data fetch ---------- */\n  function loadFeed() {\n    fetch(FEED_URL, { credentials: \"omit\" }).then(function (res) {\n      if (!res.ok) throw new Error(\"feed http \" + res.status);\n      return res.json();\n    }).then(function (data) {\n      var byCategory = {};\n      (data.categories || []).forEach(function (cat) {\n        byCategory[cat.id] = (cat.items || []).map(function (item) {\n          return Object.assign({ categoryLabel: cat.label }, item);\n        });\n      });\n      state.feedByCategory = byCategory;\n      state.feedLoaded = true;\n      updateFacetStatus();\n      renderAllPanels();\n    }).catch(function (err) {\n      console.error(\"[plant-news] feed load failed\", err);\n      state.feedLoaded = true;\n      state.feedError = true;\n      renderAllPanels();\n    });\n  }\n\n  function fetchLeaflaEventsForRegions(regionCodes) {\n    if (!regionCodes.length) {\n      state.myAreaEvents = [];\n      state.myAreaLoaded = true;\n      renderMyAreaPanel();\n      return;\n    }\n    var today = new Date();\n    var monthRequests = [0, 1].map(function (offset) {\n      var d = new Date(today.getFullYear(), today.getMonth() + offset, 1);\n      var monthStr = d.getFullYear() + \"-\" + String(d.getMonth() + 1).padStart(2, \"0\");\n      return fetch(EVENTS_API_BASE + \"?month=\" + monthStr).then(function (res) {\n        return res.ok ? res.json() : { events: [] };\n      }).catch(function () { return { events: [] }; });\n    });\n    Promise.all(monthRequests).then(function (results) {\n      var todayStr = today.toISOString().slice(0, 10);\n      var all = [];\n      results.forEach(function (data) { all = all.concat(data.events || data.data || []); });\n      var filtered = all.filter(function (ev) {\n        if (!ev.event_date || ev.event_date < todayStr) return false;\n        var regions = ev.regions || [];\n        return regions.some(function (r) { return regionCodes.indexOf(r) >= 0; });\n      });\n      filtered.sort(function (a, b) { return (a.event_date || \"\").localeCompare(b.event_date || \"\"); });\n      state.myAreaEvents = filtered.slice(0, 20).map(function (ev) {\n        var matchedRegion = (ev.regions || []).filter(function (r) { return regionCodes.indexOf(r) >= 0; })[0];\n        return { title: ev.title, venue: ev.venue, event_date: ev.event_date, slug: ev.slug, image: ev.image_url || \"\", regionLabel: REGION_LABELS[matchedRegion] || \"\" };\n      });\n      state.myAreaLoaded = true;\n      renderMyAreaPanel();\n    });\n  }\n\n  // \u300C\u30A4\u30D9\u30F3\u30C8\u30FB\u65BD\u8A2D\u300D\u30BF\u30D6\u7528: \u95A2\u6771\u30FB\u95A2\u897F\u306A\u3069\u306E\u5E83\u57DF\u30A8\u30EA\u30A2\u3054\u3068\u306B\u76F4\u8FD1\u958B\u50AC\u30A4\u30D9\u30F3\u30C8\u3092\n  // \u307E\u3068\u3081\u3001\u30A8\u30EA\u30A2\u5225\u30AB\u30EB\u30FC\u30BB\u30EB\u3068\u3057\u3066\u8868\u793A\u3059\u308B(2026-08-30\u3001\u30E6\u30FC\u30B6\u30FC\u8981\u671B\u3067\u5358\u306A\u308B\n  // \u6570\u4EF6\u30D7\u30EC\u30D3\u30E5\u30FC\u304B\u3089\u62E1\u5F35)\u3002\u30A8\u30EA\u30A2\u5206\u3051\u306Fmain-page-venues.liquid\u306E\u5730\u57DF\u30D4\u30EB\u3068\n  // \u540C\u3058\u512A\u5148\u9806\u4F4D(\u95A2\u6771\u2192\u95A2\u897F\u2192\u4E2D\u90E8\u2192\u6771\u5317\u2192\u4E5D\u5DDE\u2192\u5317\u6D77\u9053\u2192\u4E2D\u56FD\u2192\u56DB\u56FD\u2192\u6C96\u7E04)\u3002\n  var BROAD_REGIONS_ORDER = [\"KANTO\", \"KANSAI\", \"CHUBU\", \"TOHOKU\", \"KYUSHU\", \"HOKKAIDO\", \"CHUGOKU\", \"SHIKOKU\", \"OKINAWA\"];\n  var REGION_CAROUSEL_MONTHS = 3; // \u5F53\u6708+2\u30F6\u6708\u5148\u307E\u3067\n  var REGION_CAROUSEL_LIMIT = 12; // \u30A8\u30EA\u30A2\u3054\u3068\u306E\u6700\u5927\u8868\u793A\u4EF6\u6570\n\n  function loadRealEventsPreview() {\n    var today = new Date();\n    var monthRequests = [];\n    for (var i = 0; i < REGION_CAROUSEL_MONTHS; i++) {\n      (function (offset) {\n        var d = new Date(today.getFullYear(), today.getMonth() + offset, 1);\n        var monthStr = d.getFullYear() + \"-\" + String(d.getMonth() + 1).padStart(2, \"0\");\n        monthRequests.push(fetch(EVENTS_API_BASE + \"?month=\" + monthStr).then(function (res) {\n          return res.ok ? res.json() : { events: [] };\n        }).catch(function () { return { events: [] }; }));\n      })(i);\n    }\n    Promise.all(monthRequests).then(function (results) {\n      var todayStr = today.toISOString().slice(0, 10);\n      var all = [];\n      results.forEach(function (data) { all = all.concat(data.events || data.data || []); });\n      var upcoming = all.filter(function (ev) { return ev.event_date && ev.event_date >= todayStr; });\n      upcoming.sort(function (a, b) { return (a.event_date || \"\").localeCompare(b.event_date || \"\"); });\n\n      var byRegion = {};\n      BROAD_REGIONS_ORDER.forEach(function (code) { byRegion[code] = []; });\n      upcoming.forEach(function (ev) {\n        var regions = ev.regions || [];\n        BROAD_REGIONS_ORDER.forEach(function (code) {\n          if (regions.indexOf(code) < 0) return;\n          if (byRegion[code].length >= REGION_CAROUSEL_LIMIT) return;\n          byRegion[code].push({\n            title: ev.title, venue: ev.venue, event_date: ev.event_date,\n            slug: ev.slug, image: ev.image_url || \"\",\n          });\n        });\n      });\n      state.regionEventsPreview = byRegion;\n      state.regionEventsPreviewLoaded = true;\n      var tab = TABS.filter(function (t) { return t.id === EVENTS_FACILITIES_TAB_ID; })[0];\n      if (tab) renderNewsPanel(tab);\n    });\n  }\n\n  // \u30A8\u30EA\u30A2\u5225\u30AB\u30EB\u30FC\u30BB\u30EB\u306E1\u679A\u306E\u30AB\u30FC\u30C9(\u6A2A\u30B9\u30AF\u30ED\u30FC\u30EB\u3001\u56FA\u5B9A\u5E45)\u3002\n  function buildEventCarouselCardHtml(ev) {\n    var d = ev.event_date ? new Date(ev.event_date + \"T00:00:00\") : null;\n    var validDate = d && !isNaN(d.getTime());\n    var dateLabel = validDate\n      ? (d.getMonth() + 1) + \"/\" + String(d.getDate()).padStart(2, \"0\") + \"(\" + [\"\u65E5\", \"\u6708\", \"\u706B\", \"\u6C34\", \"\u6728\", \"\u91D1\", \"\u571F\"][d.getDay()] + \")\"\n      : \"\";\n    var thumb = ev.image\n      ? '<div class=\"pn-carousel-card-thumb\"><img src=\"' + escapeHtml(ev.image) + '\" alt=\"\" loading=\"lazy\"></div>'\n      : '<div class=\"pn-carousel-card-thumb pn-carousel-card-thumb--empty\">\uD83C\uDF3F</div>';\n    return '<a class=\"pn-carousel-card\" href=\"/blogs/media/' + escapeHtml(ev.slug) + '\">' + thumb +\n      '<div class=\"pn-carousel-card-body\">' +\n      '<p class=\"pn-carousel-card-date\">' + escapeHtml(dateLabel) + '</p>' +\n      '<p class=\"pn-carousel-card-title\">' + escapeHtml(ev.title) + '</p>' +\n      (ev.venue ? '<p class=\"pn-carousel-card-venue\">' + escapeHtml(ev.venue) + '</p>' : '') +\n      '</div></a>';\n  }\n\n  // 1\u30A8\u30EA\u30A2\u5206\u306E\u30AB\u30EB\u30FC\u30BB\u30EB\u30D6\u30ED\u30C3\u30AF(\u898B\u51FA\u3057+\u6A2A\u30B9\u30AF\u30ED\u30FC\u30EB\u884C)\u3002\n  function buildRegionCarouselHtml(regionCode, events) {\n    var label = REGION_LABELS[regionCode] || regionCode;\n    var cardsHtml = events.map(buildEventCarouselCardHtml).join(\"\");\n    return '<div class=\"pn-region-carousel-block\">' +\n      '<div class=\"pn-sec-label\"><span class=\"pn-sec-label-text\">' + escapeHtml(label) + '\u306E\u30A4\u30D9\u30F3\u30C8</span><span class=\"pn-sec-label-rule\"></span>' +\n      '<a class=\"pn-region-carousel-more\" href=\"/blogs/media/event-list\">\u3082\u3063\u3068\u898B\u308B</a></div>' +\n      '<div class=\"pn-carousel-scroll\">' + cardsHtml + '</div>' +\n      '</div>';\n  }\n\n  // \u5168\u30A8\u30EA\u30A2\u5206\u306E\u30AB\u30EB\u30FC\u30BB\u30EB\u3092\u307E\u3068\u3081\u3066\u7D44\u307F\u7ACB\u3066\u308B(\u30A4\u30D9\u30F3\u30C8\u304C1\u4EF6\u3082\u7121\u3044\u30A8\u30EA\u30A2\u306F\u7701\u304F)\u3002\n  function buildRegionCarouselsHtml() {\n    var html = \"\";\n    BROAD_REGIONS_ORDER.forEach(function (code) {\n      var events = state.regionEventsPreview[code] || [];\n      if (events.length === 0) return;\n      html += buildRegionCarouselHtml(code, events);\n    });\n    return html;\n  }\n\n  function loadMyArea() {\n    if (!CUSTOMER_EMAIL) { renderMyAreaPanel(); return; }\n    fetch(FOLLOWS_BASE_URL + encodeURIComponent(CUSTOMER_EMAIL), { credentials: \"omit\" }).then(function (res) {\n      if (!res.ok) throw new Error(\"follows http \" + res.status);\n      return res.json();\n    }).then(function (data) {\n      state.followedRegions = data.regions || [];\n      renderMyAreaPanel();\n      fetchLeaflaEventsForRegions(state.followedRegions);\n    }).catch(function (err) {\n      console.error(\"[plant-news] my-area load failed\", err);\n      state.myAreaLoaded = true;\n      renderMyAreaPanel();\n    });\n  }\n\n  /* ---------- event delegation ---------- */\n  function initEvents() {\n    var tabRow = qs(\"#pnTabRow\");\n    if (tabRow) {\n      tabRow.addEventListener(\"click\", function (e) {\n        var btn = e.target.closest(\".pn-tab\");\n        if (btn) jumpToPanel(Number(btn.getAttribute(\"data-idx\")));\n      });\n    }\n\n    var prevBtn = qs(\"#pnFlickPrev\");\n    if (prevBtn) prevBtn.addEventListener(\"click\", function () { jumpToPanel(Math.max(0, state.activeIndex - 1)); });\n    var nextBtn = qs(\"#pnFlickNext\");\n    if (nextBtn) nextBtn.addEventListener(\"click\", function () { jumpToPanel(Math.min((TABS.length || 1) - 1, state.activeIndex + 1)); });\n\n    var facetPanel = qs(\"#pnFacetPanel\");\n    if (facetPanel) {\n      facetPanel.addEventListener(\"click\", function (e) {\n        if (e.target.closest(\"[data-action='toggle-panel']\")) {\n          var body = qs(\"#pnFacetPanelBody\");\n          var chevron = qs(\"#pnFacetPanelChevron\");\n          var open = body.style.display !== \"none\";\n          body.style.display = open ? \"none\" : \"\";\n          if (chevron) chevron.classList.toggle(\"pn-chevron--open\", !open);\n          return;\n        }\n        var groupHead = e.target.closest(\"[data-action='toggle-group']\");\n        if (groupHead) {\n          var groupBody = groupHead.parentElement.querySelector(\".pn-facet-options\");\n          var groupChevron = groupHead.querySelector(\".pn-chevron\");\n          var isOpen = groupBody.style.display !== \"none\";\n          groupBody.style.display = isOpen ? \"none\" : \"\";\n          if (groupChevron) groupChevron.classList.toggle(\"pn-chevron--open\", !isOpen);\n          return;\n        }\n        if (e.target.closest(\"[data-action='clear-tags']\")) { clearTags(); return; }\n        var chipBtn = e.target.closest(\"[data-action='remove-chip']\");\n        if (chipBtn) { toggleTag(chipBtn.getAttribute(\"data-dim\"), chipBtn.getAttribute(\"data-value\")); }\n      });\n      facetPanel.addEventListener(\"change\", function (e) {\n        var cb = e.target.closest(\".pn-facet-option input[type='checkbox']\");\n        if (cb) toggleTag(cb.getAttribute(\"data-dim\"), cb.getAttribute(\"data-value\"));\n      });\n    }\n\n    var mainScroll = qs(\"#pnMainScroll\");\n    if (mainScroll) {\n      mainScroll.addEventListener(\"click\", function (e) {\n        var toggleBtn = e.target.closest(\"[data-action='toggle-series']\");\n        if (!toggleBtn) return;\n        var id = toggleBtn.getAttribute(\"data-id\");\n        state.expandedSeries[id] = !state.expandedSeries[id];\n        renderAllPanels();\n      });\n    }\n  }\n\n  // URL\u306E?tab=<id>\u3067\u8A72\u5F53\u30BF\u30D6\u3078\u76F4\u63A5\u30B8\u30E3\u30F3\u30D7\u3059\u308B(\u300C\u7279\u96C6\u306E\u4E00\u89A7\u3092\u898B\u308B\u300D\u7B49\u3001\n  // \u30D5\u30EA\u30C3\u30AF\u5916\u304B\u3089\u3053\u306E\u30DA\u30FC\u30B8\u306E\u7279\u5B9A\u30BF\u30D6\u3078\u76F4\u63A5\u30EA\u30F3\u30AF\u3059\u308B\u305F\u3081\u306E\u52D5\u7DDA)\u3002\n  // compact(\u30DB\u30FC\u30E0\u57CB\u3081\u8FBC\u307F)\u5074\u3067\u306F\u4F7F\u308F\u306A\u3044\u60F3\u5B9A(\u305D\u3061\u3089\u306F\u30EA\u30F3\u30AF\u5148\u304C\u5E38\u306B\n  // \u30D5\u30EB\u30DA\u30FC\u30B8/pages/plant-news\u306A\u306E\u3067\u3001\u3053\u3053\u304C\u5B9F\u884C\u3055\u308C\u308B\u306E\u306F\u30D5\u30EB\u30DA\u30FC\u30B8\u5074\u306E\u307F)\u3002\n  function initTabFromUrl() {\n    var params = new URLSearchParams(window.location.search);\n    var wanted = params.get(\"tab\");\n    if (!wanted) return;\n    var idx = -1;\n    for (var i = 0; i < TABS.length; i++) {\n      if (TABS[i].id === wanted) { idx = i; break; }\n    }\n    if (idx < 0) return;\n    var scroller = qs(\"#pnMainScroll\");\n    if (scroller) {\n      var width = scroller.clientWidth || 1;\n      scroller.scrollLeft = idx * width;\n    }\n    setActiveIndex(idx);\n  }\n\n  document.addEventListener(\"DOMContentLoaded\", function () {\n    initEvents();\n    initScrollSync();\n    initDragScroll();\n    updateFlickNavButtons();\n    initTabFromUrl();\n    loadFeed();\n    loadMyArea();\n    loadRealEventsPreview();\n    loadWeekendPlans();\n    var resizeTimer = null;\n    window.addEventListener(\"resize\", function () {\n      window.clearTimeout(resizeTimer);\n      resizeTimer = window.setTimeout(updateScrollerHeight, 150);\n    });\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
