{"id":4974,"date":"2026-04-18T21:13:24","date_gmt":"2026-04-18T21:13:24","guid":{"rendered":"https:\/\/philadelphia-solar.com\/ar\/?page_id=4974"},"modified":"2026-04-19T07:25:37","modified_gmt":"2026-04-19T07:25:37","slug":"downloads-resources","status":"publish","type":"page","link":"https:\/\/philadelphia-solar.com\/ar\/downloads-resources\/","title":{"rendered":"Downloads &amp; Resources"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4974\" class=\"elementor elementor-4974\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bbac8a7 e-flex e-con-boxed e-con e-parent\" data-id=\"bbac8a7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f6dea67 elementor-widget elementor-widget-html\" data-id=\"f6dea67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"UTF-8\" \/>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\r\n  <title>Technical Library | Philadelphia Solar<\/title>\r\n\r\n  <style>\r\n    :root{\r\n      --text:#ffffff;\r\n      --text-soft:rgba(255,255,255,.66);\r\n      --text-faint:rgba(255,255,255,.50);\r\n      --line:rgba(255,255,255,.08);\r\n      --chip-bg:rgba(255,255,255,.03);\r\n      --chip-border:rgba(255,255,255,.10);\r\n      --chip-active-bg:rgba(108,92,231,.12);\r\n      --chip-active-border:rgba(108,92,231,.40);\r\n      --chip-active-text:#c3bfff;\r\n      --card-bg:rgba(255,255,255,.03);\r\n      --card-hover:rgba(255,255,255,.045);\r\n      --btn-primary-border:rgba(108,92,231,.30);\r\n      --btn-primary-hover-bg:rgba(108,92,231,.12);\r\n      --btn-primary-hover-border:rgba(108,92,231,.45);\r\n      --btn-primary-text:#a9a3ff;\r\n      --btn-primary-hover-text:#c3bfff;\r\n      --btn-secondary-border:rgba(255,255,255,.12);\r\n      --btn-secondary-text:rgba(255,255,255,.76);\r\n      --accent:#b7c4ff;\r\n      --accent-dot-1:#60a5fa;\r\n      --accent-dot-2:#818cf8;\r\n      --container:1320px;\r\n      --easing-soft:cubic-bezier(.22,1,.36,1);\r\n      --easing-apple:cubic-bezier(.2,.8,.2,1);\r\n      --transition:all .28s ease;\r\n    }\r\n\r\n    *{\r\n      box-sizing:border-box;\r\n      margin:0;\r\n      padding:0;\r\n    }\r\n\r\n    html{\r\n      scroll-behavior:smooth;\r\n    }\r\n\r\n    body{\r\n      font-family:\"Inter\",\"Segoe UI\",Arial,sans-serif;\r\n      background:transparent;\r\n      color:var(--text);\r\n      line-height:1.6;\r\n    }\r\n\r\n    a{\r\n      text-decoration:none;\r\n      color:inherit;\r\n    }\r\n\r\n    .library-page{\r\n      position:relative;\r\n      padding:42px 0 84px;\r\n      background:transparent;\r\n    }\r\n\r\n    .container{\r\n      width:min(var(--container), calc(100% - 48px));\r\n      margin:0 auto;\r\n    }\r\n\r\n    .hero{\r\n      padding:40px 0 20px;\r\n      background:transparent;\r\n      border:none;\r\n      opacity:0;\r\n      transform:translateY(20px);\r\n      transition:opacity .9s ease, transform .9s var(--easing-apple);\r\n    }\r\n\r\n    .hero.visible{\r\n      opacity:1;\r\n      transform:translateY(0);\r\n    }\r\n\r\n    .eyebrow{\r\n      display:inline-flex;\r\n      align-items:center;\r\n      gap:10px;\r\n      padding:9px 14px;\r\n      border-radius:999px;\r\n      background:rgba(255,255,255,0.04);\r\n      color:var(--accent);\r\n      font-size:11px;\r\n      font-weight:700;\r\n      letter-spacing:1.4px;\r\n      text-transform:uppercase;\r\n      margin-bottom:16px;\r\n    }\r\n\r\n    .eyebrow::before{\r\n      content:\"\";\r\n      width:7px;\r\n      height:7px;\r\n      border-radius:50%;\r\n      background:linear-gradient(135deg,var(--accent-dot-1),var(--accent-dot-2));\r\n      box-shadow:0 0 14px rgba(96,165,250,.65);\r\n      flex:0 0 auto;\r\n    }\r\n\r\n    .hero h1{\r\n      margin:0 0 14px;\r\n      color:#fff;\r\n      font-size:clamp(36px,5vw,64px);\r\n      font-weight:900;\r\n      line-height:1.02;\r\n      letter-spacing:-1.6px;\r\n      max-width:1050px;\r\n    }\r\n\r\n    .hero p{\r\n      margin:0;\r\n      color:var(--text-soft);\r\n      font-size:16px;\r\n      line-height:1.8;\r\n      max-width:860px;\r\n    }\r\n\r\n    .controls{\r\n      position:sticky;\r\n      top:0;\r\n      z-index:30;\r\n      padding:12px 0 18px;\r\n      background:linear-gradient(180deg, rgba(2,3,5,.90), rgba(2,3,5,.68));\r\n      backdrop-filter:blur(10px);\r\n      -webkit-backdrop-filter:blur(10px);\r\n      opacity:0;\r\n      transform:translateY(18px);\r\n      transition:opacity .9s ease .08s, transform .9s var(--easing-apple) .08s;\r\n    }\r\n\r\n    .controls.visible{\r\n      opacity:1;\r\n      transform:translateY(0);\r\n    }\r\n\r\n    .search-wrap{\r\n      position:relative;\r\n      margin-bottom:16px;\r\n    }\r\n\r\n    .search-input{\r\n      width:100%;\r\n      height:58px;\r\n      padding:0 18px 0 50px;\r\n      border-radius:16px;\r\n      border:1px solid rgba(255,255,255,.08);\r\n      background:rgba(255,255,255,.03);\r\n      color:#fff;\r\n      outline:none;\r\n      font-size:15px;\r\n      transition:var(--transition);\r\n    }\r\n\r\n    .search-input::placeholder{\r\n      color:rgba(255,255,255,.42);\r\n    }\r\n\r\n    .search-input:focus{\r\n      border-color:rgba(108,92,231,.35);\r\n      background:rgba(255,255,255,.04);\r\n      box-shadow:0 0 0 3px rgba(108,92,231,.08);\r\n    }\r\n\r\n    .search-icon{\r\n      position:absolute;\r\n      left:18px;\r\n      top:50%;\r\n      transform:translateY(-50%);\r\n      color:#a9a3ff;\r\n      font-size:14px;\r\n      pointer-events:none;\r\n    }\r\n\r\n    .filters-wrap{\r\n      position:relative;\r\n      width:100%;\r\n    }\r\n\r\n    .filters{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:10px;\r\n    }\r\n\r\n    .filter-btn{\r\n      border:1px solid var(--chip-border);\r\n      background:var(--chip-bg);\r\n      color:#e9edf5;\r\n      padding:10px 16px;\r\n      border-radius:999px;\r\n      cursor:pointer;\r\n      font-size:14px;\r\n      font-weight:600;\r\n      white-space:nowrap;\r\n      transition:var(--transition);\r\n    }\r\n\r\n    .filter-btn:hover{\r\n      background:rgba(255,255,255,.05);\r\n    }\r\n\r\n    .filter-btn.active{\r\n      background:var(--chip-active-bg);\r\n      border-color:var(--chip-active-border);\r\n      color:var(--chip-active-text);\r\n    }\r\n\r\n    .section{\r\n      margin-top:20px;\r\n      border-radius:22px;\r\n      background:rgba(255,255,255,.02);\r\n      overflow:hidden;\r\n      opacity:0;\r\n      transform:translateY(34px) scale(.992);\r\n      transition:\r\n        opacity .95s ease,\r\n        transform .95s var(--easing-apple),\r\n        background .35s ease;\r\n      will-change:opacity, transform;\r\n    }\r\n\r\n    .section.visible{\r\n      opacity:1;\r\n      transform:translateY(0) scale(1);\r\n    }\r\n\r\n    .section.open{\r\n      background:rgba(255,255,255,.025);\r\n    }\r\n\r\n    .section-header{\r\n      width:100%;\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content:space-between;\r\n      gap:18px;\r\n      padding:22px 22px;\r\n      border:0;\r\n      background:transparent;\r\n      cursor:pointer;\r\n      text-align:left;\r\n      color:inherit;\r\n      transition:background .3s ease;\r\n    }\r\n\r\n    .section-header:hover{\r\n      background:rgba(255,255,255,.02);\r\n    }\r\n\r\n    .section-title-wrap{\r\n      display:flex;\r\n      flex-direction:column;\r\n      gap:6px;\r\n      min-width:0;\r\n    }\r\n\r\n    .section-title{\r\n      font-size:clamp(24px, 3vw, 36px);\r\n      line-height:1.08;\r\n      font-weight:800;\r\n      letter-spacing:-1px;\r\n      color:#fff;\r\n    }\r\n\r\n    .section-count{\r\n      font-size:14px;\r\n      color:var(--text-soft);\r\n      white-space:nowrap;\r\n    }\r\n\r\n    .section-icon{\r\n      flex:0 0 auto;\r\n      width:42px;\r\n      height:42px;\r\n      border-radius:999px;\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content:center;\r\n      background:rgba(255,255,255,.04);\r\n      color:#c3bfff;\r\n      transition:\r\n        transform .72s var(--easing-soft),\r\n        background .32s ease,\r\n        color .32s ease;\r\n      font-size:18px;\r\n      font-weight:700;\r\n    }\r\n\r\n    .section.open .section-icon{\r\n      transform:rotate(180deg);\r\n      background:rgba(108,92,231,.10);\r\n      color:#ddd3ff;\r\n    }\r\n\r\n    .section-body{\r\n      height:0;\r\n      overflow:hidden;\r\n      transition:height .78s var(--easing-soft);\r\n    }\r\n\r\n    .section-body-inner{\r\n      opacity:0;\r\n      transform:translateY(10px);\r\n      transition:\r\n        opacity .55s ease .05s,\r\n        transform .7s var(--easing-soft) .05s;\r\n    }\r\n\r\n    .section.open .section-body-inner{\r\n      opacity:1;\r\n      transform:translateY(0);\r\n    }\r\n\r\n    .section-content{\r\n      padding:0 22px 22px;\r\n      border-top:1px solid rgba(255,255,255,.04);\r\n    }\r\n\r\n    .cards-grid{\r\n      display:grid;\r\n      grid-template-columns:repeat(3, minmax(0,1fr));\r\n      gap:16px;\r\n      padding-top:18px;\r\n    }\r\n\r\n    .card{\r\n      padding:22px;\r\n      border-radius:18px;\r\n      background:var(--card-bg);\r\n      transition:\r\n        transform .35s ease,\r\n        background .35s ease;\r\n      min-height:250px;\r\n      display:flex;\r\n      flex-direction:column;\r\n      justify-content:space-between;\r\n    }\r\n\r\n    .card:hover{\r\n      transform:translateY(-4px);\r\n      background:var(--card-hover);\r\n    }\r\n\r\n    .card.featured{\r\n      grid-column:span 2;\r\n      background:rgba(255,255,255,.04);\r\n      padding:28px;\r\n      min-height:270px;\r\n    }\r\n\r\n    .card-top{\r\n      display:flex;\r\n      flex-direction:column;\r\n    }\r\n\r\n    .tag-row{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:8px;\r\n      margin-bottom:12px;\r\n    }\r\n\r\n    .tag{\r\n      display:inline-flex;\r\n      align-items:center;\r\n      gap:8px;\r\n      padding:7px 11px;\r\n      border-radius:999px;\r\n      background:rgba(255,255,255,.04);\r\n      color:var(--accent);\r\n      font-size:11px;\r\n      font-weight:700;\r\n      letter-spacing:1.2px;\r\n      text-transform:uppercase;\r\n    }\r\n\r\n    .card-title{\r\n      margin:0 0 8px;\r\n      color:#fff;\r\n      font-size:22px;\r\n      line-height:1.3;\r\n      font-weight:800;\r\n      letter-spacing:-.4px;\r\n    }\r\n\r\n    .card.featured .card-title{\r\n      font-size:28px;\r\n      line-height:1.15;\r\n    }\r\n\r\n    .card-subtitle{\r\n      color:var(--text-soft);\r\n      font-size:15px;\r\n      line-height:1.8;\r\n      max-width:92%;\r\n      min-height:54px;\r\n    }\r\n\r\n    .card.featured .card-subtitle{\r\n      font-size:16px;\r\n      max-width:78%;\r\n    }\r\n\r\n    .card-actions{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:10px;\r\n      margin-top:22px;\r\n    }\r\n\r\n    .btn{\r\n      display:inline-flex;\r\n      align-items:center;\r\n      justify-content:center;\r\n      min-width:122px;\r\n      height:44px;\r\n      padding:0 18px;\r\n      border-radius:10px;\r\n      font-size:14px;\r\n      font-weight:600;\r\n      transition:var(--transition);\r\n    }\r\n\r\n    .btn-primary{\r\n      background:transparent;\r\n      border:1px solid var(--btn-primary-border);\r\n      color:var(--btn-primary-text);\r\n    }\r\n\r\n    .btn-primary:hover{\r\n      background:var(--btn-primary-hover-bg);\r\n      border-color:var(--btn-primary-hover-border);\r\n      color:var(--btn-primary-hover-text);\r\n    }\r\n\r\n    .btn-secondary{\r\n      background:transparent;\r\n      border:1px solid var(--btn-secondary-border);\r\n      color:var(--btn-secondary-text);\r\n    }\r\n\r\n    .btn-secondary:hover{\r\n      background:rgba(255,255,255,.05);\r\n      color:#fff;\r\n    }\r\n\r\n    .empty-state{\r\n      padding:34px 22px;\r\n      border-radius:18px;\r\n      background:rgba(255,255,255,.03);\r\n      color:var(--text-soft);\r\n      text-align:center;\r\n      margin-top:22px;\r\n    }\r\n\r\n    .empty-state h3{\r\n      margin-bottom:10px;\r\n      color:#fff;\r\n      font-size:22px;\r\n    }\r\n\r\n    .results-note{\r\n      text-align:center;\r\n      margin-top:28px;\r\n      color:var(--text-faint);\r\n      font-size:14px;\r\n      opacity:.9;\r\n    }\r\n\r\n    .library-cta{\r\n      margin-top:52px;\r\n      padding:36px 34px;\r\n      border-radius:22px;\r\n      background:rgba(255,255,255,.03);\r\n      text-align:center;\r\n      opacity:0;\r\n      transform:translateY(28px);\r\n      transition:opacity .95s ease, transform .95s var(--easing-apple);\r\n    }\r\n\r\n    .library-cta.visible{\r\n      opacity:1;\r\n      transform:translateY(0);\r\n    }\r\n\r\n    .library-cta .eyebrow{\r\n      margin-left:auto;\r\n      margin-right:auto;\r\n    }\r\n\r\n    .library-cta h2{\r\n      margin:0 0 14px;\r\n      color:#fff;\r\n      font-size:clamp(28px, 4vw, 46px);\r\n      line-height:1.08;\r\n      font-weight:800;\r\n      letter-spacing:-1px;\r\n    }\r\n\r\n    .library-cta p{\r\n      max-width:760px;\r\n      margin:0 auto;\r\n      color:var(--text-soft);\r\n      font-size:15px;\r\n      line-height:1.85;\r\n    }\r\n\r\n    .library-cta-actions{\r\n      display:flex;\r\n      justify-content:center;\r\n      flex-wrap:wrap;\r\n      gap:12px;\r\n      margin-top:24px;\r\n    }\r\n\r\n    @media (max-width: 1100px){\r\n      .cards-grid{\r\n        grid-template-columns:repeat(2, minmax(0,1fr));\r\n      }\r\n\r\n      .card.featured{\r\n        grid-column:span 2;\r\n      }\r\n    }\r\n\r\n    @media (min-width: 768px){\r\n      .filters{\r\n        flex-wrap:wrap;\r\n        overflow:visible;\r\n      }\r\n    }\r\n\r\n    @media (max-width: 767px){\r\n      .library-page{\r\n        padding:30px 0 64px;\r\n      }\r\n\r\n      .container{\r\n        width:min(100% - 20px, 1320px);\r\n      }\r\n\r\n      .hero{\r\n        padding:10px 0 8px;\r\n        margin-bottom:18px;\r\n        text-align:center;\r\n      }\r\n\r\n      .eyebrow{\r\n        margin-bottom:12px;\r\n        font-size:10px;\r\n        letter-spacing:1.5px;\r\n        margin-left:auto;\r\n        margin-right:auto;\r\n      }\r\n\r\n      .hero h1{\r\n        font-size:32px;\r\n        line-height:1.08;\r\n        letter-spacing:-0.8px;\r\n        margin:0 auto 12px;\r\n      }\r\n\r\n      .hero p{\r\n        font-size:14px;\r\n        line-height:1.75;\r\n        color:var(--text-soft);\r\n        max-width:100%;\r\n        margin-left:auto;\r\n        margin-right:auto;\r\n      }\r\n\r\n      .controls{\r\n        top:0;\r\n        padding:10px 0 16px;\r\n        margin-bottom:8px;\r\n        background:linear-gradient(180deg, rgba(2,3,5,.94), rgba(2,3,5,.72));\r\n      }\r\n\r\n      .search-wrap{\r\n        margin-bottom:12px;\r\n      }\r\n\r\n      .search-input{\r\n        height:52px;\r\n        padding:0 16px 0 46px;\r\n        border-radius:14px;\r\n        font-size:14px;\r\n      }\r\n\r\n      .search-icon{\r\n        left:16px;\r\n        font-size:14px;\r\n      }\r\n\r\n      .filters{\r\n        flex-wrap:nowrap;\r\n        overflow-x:auto;\r\n        overflow-y:hidden;\r\n        gap:8px;\r\n        padding:2px 2px 8px;\r\n        scroll-snap-type:x proximity;\r\n        -webkit-overflow-scrolling:touch;\r\n        scrollbar-width:none;\r\n      }\r\n\r\n      .filters::-webkit-scrollbar{\r\n        display:none;\r\n      }\r\n\r\n      .filter-btn{\r\n        flex:0 0 auto;\r\n        scroll-snap-align:start;\r\n        padding:10px 14px;\r\n        font-size:13px;\r\n        border-radius:999px;\r\n      }\r\n\r\n      .section{\r\n        margin-top:18px;\r\n        border-radius:18px;\r\n      }\r\n\r\n      .section-header{\r\n        gap:10px;\r\n        padding:18px 18px;\r\n        align-items:center;\r\n        text-align:center;\r\n      }\r\n\r\n      .section-title-wrap{\r\n        align-items:center;\r\n        width:100%;\r\n      }\r\n\r\n      .section-title{\r\n        font-size:24px;\r\n        line-height:1.1;\r\n        letter-spacing:-0.6px;\r\n        width:100%;\r\n        text-align:center;\r\n      }\r\n\r\n      .section-count{\r\n        font-size:13px;\r\n        color:var(--text-faint);\r\n        width:100%;\r\n        text-align:center;\r\n      }\r\n\r\n      .section-icon{\r\n        width:38px;\r\n        height:38px;\r\n        font-size:16px;\r\n      }\r\n\r\n      .section-content{\r\n        padding:0 18px 18px;\r\n      }\r\n\r\n      .cards-grid{\r\n        grid-template-columns:1fr;\r\n        gap:14px;\r\n        padding-top:14px;\r\n      }\r\n\r\n      .card,\r\n      .card.featured{\r\n        grid-column:span 1;\r\n        min-height:auto;\r\n        padding:18px;\r\n        border-radius:16px;\r\n        background:rgba(255,255,255,0.03);\r\n        text-align:center;\r\n      }\r\n\r\n      .card-top{\r\n        align-items:center;\r\n      }\r\n\r\n      .tag-row{\r\n        margin-bottom:10px;\r\n        justify-content:center;\r\n      }\r\n\r\n      .tag{\r\n        font-size:11px;\r\n        padding:6px 10px;\r\n      }\r\n\r\n      .card-title,\r\n      .card.featured .card-title{\r\n        font-size:19px;\r\n        line-height:1.35;\r\n        margin-bottom:8px;\r\n      }\r\n\r\n      .card-subtitle,\r\n      .card.featured .card-subtitle{\r\n        min-height:auto;\r\n        font-size:14px;\r\n        line-height:1.7;\r\n        max-width:100%;\r\n        margin-left:auto;\r\n        margin-right:auto;\r\n      }\r\n\r\n      .card-actions{\r\n        margin-top:18px;\r\n        gap:8px;\r\n        flex-direction:column;\r\n        align-items:center;\r\n      }\r\n\r\n      .btn{\r\n        width:100%;\r\n        min-width:100%;\r\n        height:44px;\r\n        font-size:14px;\r\n        border-radius:10px;\r\n      }\r\n\r\n      .results-note{\r\n        margin-top:26px;\r\n        font-size:13px;\r\n        text-align:center;\r\n      }\r\n\r\n      .library-cta{\r\n        margin-top:38px;\r\n        padding:24px 18px;\r\n        border-radius:18px;\r\n      }\r\n\r\n      .library-cta h2{\r\n        font-size:28px;\r\n        line-height:1.12;\r\n        margin-bottom:12px;\r\n      }\r\n\r\n      .library-cta p{\r\n        font-size:14px;\r\n        line-height:1.75;\r\n      }\r\n\r\n      .library-cta-actions{\r\n        margin-top:18px;\r\n        flex-direction:column;\r\n      }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n\r\n  <section class=\"library-page\">\r\n    <div class=\"container\">\r\n\r\n      <div class=\"hero\" id=\"heroBlock\">\r\n        <span class=\"eyebrow\">Technical Library<\/span>\r\n        <h1>Datasheets, Certifications, Catalogues & Technical Documents<\/h1>\r\n        <p>\r\n          Explore our complete library of solar panels, mounting structures, BESS solutions,\r\n          certifications, catalogues, warranties, manuals, and supporting technical documents.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"controls\" id=\"controlsBlock\">\r\n        <div class=\"search-wrap\">\r\n          <span class=\"search-icon\">\u2315<\/span>\r\n          <input\r\n            id=\"searchInput\"\r\n            class=\"search-input\"\r\n            type=\"text\"\r\n            placeholder=\"Search by product name, model, wattage, category, document type...\"\r\n          \/>\r\n        <\/div>\r\n\r\n        <div class=\"filters-wrap\">\r\n          <div class=\"filters\" id=\"categoryFilters\">\r\n            <button class=\"filter-btn active\" data-filter=\"all\">All<\/button>\r\n            <button class=\"filter-btn\" data-filter=\"company-profile-catalogs\">Company Profile and Catalogs<\/button>\r\n            <button class=\"filter-btn\" data-filter=\"solar-panels\">Solar Panels<\/button>\r\n            <button class=\"filter-btn\" data-filter=\"mounting-structures\">Mounting Structures<\/button>\r\n            <button class=\"filter-btn\" data-filter=\"bess-solutions\">BESS Solutions<\/button>\r\n            <button class=\"filter-btn\" data-filter=\"factory-certifications\">Factory Certifications<\/button>\r\n            <button class=\"filter-btn\" data-filter=\"warranties\">Warranties<\/button>\r\n            <button class=\"filter-btn\" data-filter=\"manuals\">Manuals<\/button>\r\n            <button class=\"filter-btn\" data-filter=\"others\">Others<\/button>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <main id=\"libraryContainer\"><\/main>\r\n\r\n      <section class=\"library-cta\" id=\"ctaBlock\">\r\n        <span class=\"eyebrow\">Need Support?<\/span>\r\n        <h2>Looking for More Technical Documentation?<\/h2>\r\n        <p>\r\n          If you need additional product information, engineering support, or specific documentation,\r\n          our team is ready to help you with the right resources for your project.\r\n        <\/p>\r\n\r\n        <div class=\"library-cta-actions\">\r\n          <a href=\"https:\/\/philadelphiasolar.cloud\/ar\/contact\/\" class=\"btn btn-primary\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n            Contact Our Team\r\n          <\/a>\r\n          <a href=\"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/company-profile.pdf\" class=\"btn btn-secondary\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n            Explore Company Profile\r\n          <\/a>\r\n        <\/div>\r\n      <\/section>\r\n\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <script>\r\n    const libraryData = [\r\n      {\r\n        categoryId: \"company-profile-catalogs\",\r\n        categoryName: \"Company Profile and Catalogs\",\r\n        items: [\r\n          {\r\n            title: \"Company Profile (EN)\",\r\n            subtitle: \"Corporate overview, capabilities, and project portfolio.\",\r\n            type: \"Company Profile\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/company-profile.pdf\",\r\n            featured: true\r\n          },\r\n          {\r\n            title: \"Steel Mounting Structure Catalogue\",\r\n            subtitle: \"Complete catalogue for steel structure solutions and mounting systems.\",\r\n            type: \"Catalogue\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Steel-Catalogue-2026.pdf\"\r\n          },\r\n          {\r\n            title: \"Solar Panels Catalogue\",\r\n            subtitle: \"Product catalogue covering the photovoltaic panel portfolio.\",\r\n            type: \"Catalogue\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/PV-catalogue-PSPC0518_Final_LW.pdf\"\r\n          },\r\n          {\r\n            title: \"EPC References Catalogue\",\r\n            subtitle: \"Engineering, procurement, construction references and project portfolio.\",\r\n            type: \"Catalogue\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/EPC-catalog_12-Aug-2024.pdf\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        categoryId: \"solar-panels\",\r\n        categoryName: \"Solar Panels\",\r\n        items: [\r\n          {\r\n            title: \"PS-MNB108 (HCBF) 425W \u2013 440W\",\r\n            subtitle: \"Monocrystalline solar panel datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Datasheet-PS-MNB108HCBF-425W-440W-1.pdf\"\r\n          },\r\n          {\r\n            title: \"PS-MNB108 (HCBF) 445W \u2013 460W\",\r\n            subtitle: \"Monocrystalline solar panel datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Datasheet-PS-MNB108HCBF-445W-460Wxx.pdf\"\r\n          },\r\n          {\r\n            title: \"PS-MNB132 (HCBF) 520W \u2013 540W\",\r\n            subtitle: \"Monocrystalline solar panel datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Datasheet-PS-MNB132HCBF-520W-540W-.pdf\"\r\n          },\r\n          {\r\n            title: \"PS-MNB144 (HCBF) 580W \u2013 600W (30mm)\",\r\n            subtitle: \"Monocrystalline solar panel datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Datasheet-PS-MNB144HCBF-580W-600W-30mm-.pdf\"\r\n          },\r\n          {\r\n            title: \"PS-MNG144 (HCBF) 580W \u2013 600W\",\r\n            subtitle: \"Monocrystalline solar panel datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Datasheet-PS-MNG144HCBF-580W-600W-.pdf\"\r\n          },\r\n          {\r\n            title: \"PS-MN108 (HCBF) 550W \u2013 575W\",\r\n            subtitle: \"Nexus solar panel datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Nexus-575W-PS-MN144HCBF-xxxW-550-575.pdf\"\r\n          },\r\n          {\r\n            title: \"PS-MNB144 (HCBF) 580W \u2013 600W\",\r\n            subtitle: \"Monocrystalline solar panel datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Datasheet-PS-MNB144HCBF-580W-600W-.pdf\"\r\n          },\r\n          {\r\n            title: \"PS-MNB156 (HCBF) 630W \u2013 650W\",\r\n            subtitle: \"Monocrystalline solar panel datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/woocommerce_uploads\/2026\/02\/Datasheet-PS-MNB156HCBF-630W-650W-1-3mqtv8.pdf\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        categoryId: \"mounting-structures\",\r\n        categoryName: \"Mounting Structures\",\r\n        items: [\r\n          {\r\n            title: \"Canopy Mounting Structure\",\r\n            subtitle: \"Technical datasheet for canopy mounting structure system.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Canopy-Mounting-Structure.pdf\"\r\n          },\r\n          {\r\n            title: \"Carpark Mounting Structure\",\r\n            subtitle: \"Technical datasheet for carpark mounting structure system.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Car-Park-Mounting-Structure.pdf\"\r\n          },\r\n          {\r\n            title: \"Flat Rooftop Mounting Structure\",\r\n            subtitle: \"Technical datasheet for flat rooftop structure system.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Flat-Roof-Mounting-Structure.pdf\"\r\n          },\r\n          {\r\n            title: \"Pitch Tin Roof Mounting Structure\",\r\n            subtitle: \"Technical datasheet for pitched tin roof structure system.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Pitch-tin-Roof-Mounting-Structure.pdf\"\r\n          },\r\n          {\r\n            title: \"Pitched Tile Roof Mounting Structure\",\r\n            subtitle: \"Technical datasheet for pitched tile roof structure system.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Pitch-Tile-Roof-Mounting-Structure.pdf\"\r\n          },\r\n          {\r\n            title: \"Ramming \/ Ground Mounting Structure\",\r\n            subtitle: \"Technical datasheet for ground mounting structure system.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Ramming-Mounting-Structure.pdf\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        categoryId: \"bess-solutions\",\r\n        categoryName: \"BESS Solutions\",\r\n        items: [\r\n          {\r\n            title: \"Involtek NVG Series (14.3\u201315.3kWh)\",\r\n            subtitle: \"Grounded battery storage solution datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/NVG-Grounded-Involtek-Battery_compressed.pdf\"\r\n          },\r\n          {\r\n            title: \"Involtek NVS Series (5.1kWh\u201330kWh)\",\r\n            subtitle: \"Stackable battery storage solution datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/NVS-Stackable-Involtek-Battery_compressed.pdf\"\r\n          },\r\n          {\r\n            title: \"Involtek NVW Series (1.28\u201310.24kWh)\",\r\n            subtitle: \"Wall-mounted battery storage solution datasheet.\",\r\n            type: \"Datasheet\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/NVW-Wall-Mounted-Involtek-Battery_compressed.pdf\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        categoryId: \"factory-certifications\",\r\n        categoryName: \"Factory Certifications\",\r\n        items: [\r\n          {\r\n            title: \"ISO 9001:2015\",\r\n            subtitle: \"Quality management system certification.\",\r\n            type: \"Certification\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Philadelphia-Solar_CERT_9001_2015_EN.pdf\"\r\n          },\r\n          {\r\n            title: \"ISO 14001:2015\",\r\n            subtitle: \"Environmental management system certification.\",\r\n            type: \"Certification\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/CERT_14001_2015_EN_philadelphia.pdf\"\r\n          },\r\n          {\r\n            title: \"ISO 45001:2018\",\r\n            subtitle: \"Occupational health and safety management certification.\",\r\n            type: \"Certification\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/CERT_45001_2015_Philadelphia-Solar.pdf\"\r\n          },\r\n          {\r\n            title: \"DNV.GL Bankability Report 2019\",\r\n            subtitle: \"Independent bankability assessment report.\",\r\n            type: \"Bankability Report\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/bankability_report_L169789-ME-R-01-D_-2019.pdf\"\r\n          },\r\n          {\r\n            title: \"DNV.GL Bankability Report 2020\",\r\n            subtitle: \"Independent bankability assessment report.\",\r\n            type: \"Bankability Report\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/bankability_report_L169789-ME-R-01-D-2020.pdf\"\r\n          },\r\n          {\r\n            title: \"Studer Partnership of Excellence\",\r\n            subtitle: \"Official partnership excellence certificate.\",\r\n            type: \"Certification\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Studer_-_Partnership_of_Excellence1.pdf\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        categoryId: \"warranties\",\r\n        categoryName: \"Warranties\",\r\n        items: [\r\n          {\r\n            title: \"Warranty Against Corrosion Mounting Structure\",\r\n            subtitle: \"20-year corrosion warranty document.\",\r\n            type: \"Warranty\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Philadelphia-Solar-20-year-against-Corrsion.pdf\"\r\n          },\r\n          {\r\n            title: \"Durability Warranty Mounting Structure\",\r\n            subtitle: \"Durability warranty for mounting structure systems.\",\r\n            type: \"Warranty\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Durability_Warranty_-_Mounting_Structure.pdf\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        categoryId: \"manuals\",\r\n        categoryName: \"Manuals\",\r\n        items: [\r\n          {\r\n            title: \"General Safety Instructions (EN)\",\r\n            subtitle: \"General operational and handling safety instructions.\",\r\n            type: \"Manual\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/General_Safety_Instructions_-_English.pdf\"\r\n          },\r\n          {\r\n            title: \"Cleaning Guideline Rev.03\",\r\n            subtitle: \"Recommended cleaning procedures for photovoltaic panels.\",\r\n            type: \"Manual\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Guide-to-Cleaning-Pv-panles.pdf\"\r\n          },\r\n          {\r\n            title: \"Installation Manual Rev.17\",\r\n            subtitle: \"General installation manual and operational guidance.\",\r\n            type: \"Manual\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Philadelphia-Manual-Rev-17.2.pdf\"\r\n          },\r\n          {\r\n            title: \"Rooftop Installation Manual\",\r\n            subtitle: \"Technical installation manual for rooftop systems.\",\r\n            type: \"Manual\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Rooftop_Installation_Manual.pdf\"\r\n          },\r\n          {\r\n            title: \"Quality Policy\",\r\n            subtitle: \"Official quality policy document.\",\r\n            type: \"Policy\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/PS_-_Quality_Policy-012-01.pdf\"\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        categoryId: \"others\",\r\n        categoryName: \"Others\",\r\n        items: [\r\n          {\r\n            title: \"international references (2021)\",\r\n            subtitle: \"International reference projects and updates.\",\r\n            type: \"Reference\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/International_Ref._update_2021_.pdf\"\r\n          },\r\n          {\r\n            title: \"Tesla Case-Study EMEA Philadelphia\",\r\n            subtitle: \"Regional case study and deployment insight.\",\r\n            type: \"Case Study\",\r\n            url: \"https:\/\/philadelphiasolar.cloud\/ar\/wp-content\/uploads\/2026\/04\/Tesla_Case_Study_EMEA_Philadelphia.pdf\"\r\n          }\r\n        ]\r\n      }\r\n    ];\r\n\r\n    const libraryContainer = document.getElementById(\"libraryContainer\");\r\n    const searchInput = document.getElementById(\"searchInput\");\r\n    const filterButtons = document.querySelectorAll(\".filter-btn\");\r\n    const heroBlock = document.getElementById(\"heroBlock\");\r\n    const controlsBlock = document.getElementById(\"controlsBlock\");\r\n    const ctaBlock = document.getElementById(\"ctaBlock\");\r\n\r\n    let activeFilter = \"all\";\r\n    let searchTerm = \"\";\r\n    let revealObserver = null;\r\n\r\n    function normalizeText(text) {\r\n      return text.toLowerCase().replace(\/\\s+\/g, \" \").trim();\r\n    }\r\n\r\n    function createCard(item) {\r\n      return `\r\n        <article class=\"card ${item.featured ? \"featured\" : \"\"}\">\r\n          <div class=\"card-top\">\r\n            <div class=\"tag-row\">\r\n              <span class=\"tag\">${item.type}<\/span>\r\n            <\/div>\r\n            <h3 class=\"card-title\">${item.title}<\/h3>\r\n            <p class=\"card-subtitle\">${item.subtitle}<\/p>\r\n          <\/div>\r\n\r\n          <div class=\"card-actions\">\r\n            <a class=\"btn btn-primary\" href=\"${item.url}\" target=\"_blank\" rel=\"noopener noreferrer\">View PDF<\/a>\r\n            <a class=\"btn btn-secondary\" href=\"${item.url}\" download>Download<\/a>\r\n          <\/div>\r\n        <\/article>\r\n      `;\r\n    }\r\n\r\n    function setSectionHeight(section, open) {\r\n      const body = section.querySelector(\".section-body\");\r\n      const header = section.querySelector(\".section-header\");\r\n      if (!body || !header) return;\r\n\r\n      body.style.overflow = \"hidden\";\r\n\r\n      if (open) {\r\n        section.classList.add(\"open\");\r\n        header.setAttribute(\"aria-expanded\", \"true\");\r\n        body.style.height = body.scrollHeight + \"px\";\r\n\r\n        const onOpenEnd = (e) => {\r\n          if (e.propertyName !== \"height\") return;\r\n          if (!section.classList.contains(\"open\")) return;\r\n          body.style.height = \"auto\";\r\n          body.removeEventListener(\"transitionend\", onOpenEnd);\r\n        };\r\n        body.addEventListener(\"transitionend\", onOpenEnd);\r\n      } else {\r\n        if (body.style.height === \"auto\" || !body.style.height) {\r\n          body.style.height = body.scrollHeight + \"px\";\r\n        }\r\n\r\n        requestAnimationFrame(() => {\r\n          section.classList.remove(\"open\");\r\n          header.setAttribute(\"aria-expanded\", \"false\");\r\n          body.style.height = \"0px\";\r\n        });\r\n      }\r\n    }\r\n\r\n    function closeAllSections(exceptId = null) {\r\n      document.querySelectorAll(\".section\").forEach(section => {\r\n        if (exceptId && section.dataset.sectionId === exceptId) return;\r\n        setSectionHeight(section, false);\r\n      });\r\n    }\r\n\r\n    function toggleSection(sectionId) {\r\n      const section = document.querySelector(`.section[data-section-id=\"${sectionId}\"]`);\r\n      if (!section) return;\r\n\r\n      const isOpen = section.classList.contains(\"open\");\r\n\r\n      if (isOpen) {\r\n        setSectionHeight(section, false);\r\n      } else {\r\n        closeAllSections(sectionId);\r\n        setSectionHeight(section, true);\r\n      }\r\n    }\r\n\r\n    function buildSection(section, items) {\r\n      const sectionEl = document.createElement(\"section\");\r\n      sectionEl.className = \"section\";\r\n      sectionEl.dataset.sectionId = section.categoryId;\r\n\r\n      sectionEl.innerHTML = `\r\n        <button class=\"section-header\" type=\"button\" aria-expanded=\"false\">\r\n          <div class=\"section-title-wrap\">\r\n            <h2 class=\"section-title\">${section.categoryName}<\/h2>\r\n            <div class=\"section-count\">${items.length} document${items.length > 1 ? \"s\" : \"\"}<\/div>\r\n          <\/div>\r\n          <span class=\"section-icon\">\u2304<\/span>\r\n        <\/button>\r\n\r\n        <div class=\"section-body\" style=\"height:0px;\">\r\n          <div class=\"section-body-inner\">\r\n            <div class=\"section-content\">\r\n              <div class=\"cards-grid\">\r\n                ${items.map(createCard).join(\"\")}\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      `;\r\n\r\n      const headerBtn = sectionEl.querySelector(\".section-header\");\r\n      headerBtn.addEventListener(\"click\", () => {\r\n        toggleSection(section.categoryId);\r\n      });\r\n\r\n      return sectionEl;\r\n    }\r\n\r\n    function setupRevealAnimations() {\r\n      if (revealObserver) revealObserver.disconnect();\r\n\r\n      revealObserver = new IntersectionObserver((entries) => {\r\n        entries.forEach(entry => {\r\n          if (entry.isIntersecting) {\r\n            entry.target.classList.add(\"visible\");\r\n          }\r\n        });\r\n      }, {\r\n        threshold: 0.12,\r\n        rootMargin: \"0px 0px -8% 0px\"\r\n      });\r\n\r\n      document.querySelectorAll(\".section, .library-cta\").forEach(el => {\r\n        revealObserver.observe(el);\r\n      });\r\n    }\r\n\r\n    function renderLibrary() {\r\n      libraryContainer.innerHTML = \"\";\r\n      let totalVisible = 0;\r\n\r\n      libraryData.forEach(section => {\r\n        const items = section.items.filter(item => {\r\n          const matchesFilter = activeFilter === \"all\" || activeFilter === section.categoryId;\r\n\r\n          const haystack = normalizeText(`\r\n            ${section.categoryName}\r\n            ${item.title}\r\n            ${item.subtitle}\r\n            ${item.type}\r\n          `);\r\n\r\n          const matchesSearch = haystack.includes(normalizeText(searchTerm));\r\n          return matchesFilter && matchesSearch;\r\n        });\r\n\r\n        if (!items.length) return;\r\n\r\n        totalVisible += items.length;\r\n        const sectionEl = buildSection(section, items);\r\n        libraryContainer.appendChild(sectionEl);\r\n      });\r\n\r\n      if (!totalVisible) {\r\n        libraryContainer.innerHTML = `\r\n          <div class=\"empty-state\">\r\n            <h3>No documents found<\/h3>\r\n            <p>Try another keyword or switch to a different category.<\/p>\r\n          <\/div>\r\n        `;\r\n        return false;\r\n      }\r\n\r\n      const note = document.createElement(\"div\");\r\n      note.className = \"results-note\";\r\n      note.textContent = `Showing ${totalVisible} document${totalVisible !== 1 ? \"s\" : \"\"}`;\r\n      libraryContainer.appendChild(note);\r\n\r\n      setupRevealAnimations();\r\n\r\n      const firstSection = libraryContainer.querySelector(\".section\");\r\n      if (firstSection && window.innerWidth > 767) {\r\n        setTimeout(() => {\r\n          setSectionHeight(firstSection, true);\r\n        }, 220);\r\n      }\r\n\r\n      return true;\r\n    }\r\n\r\n    function scrollActiveFilterIntoView(button){\r\n      if (window.innerWidth <= 767) {\r\n        button.scrollIntoView({\r\n          behavior: \"smooth\",\r\n          inline: \"center\",\r\n          block: \"nearest\"\r\n        });\r\n      }\r\n    }\r\n\r\n    function scrollToResults() {\r\n      const firstSection = libraryContainer.querySelector(\".section, .empty-state\");\r\n      if (firstSection) {\r\n        const yOffset = window.innerWidth <= 767 ? -110 : -120;\r\n        const y = firstSection.getBoundingClientRect().top + window.pageYOffset + yOffset;\r\n        window.scrollTo({\r\n          top: y,\r\n          behavior: \"smooth\"\r\n        });\r\n      }\r\n    }\r\n\r\n    searchInput.addEventListener(\"input\", (e) => {\r\n      searchTerm = e.target.value;\r\n      renderLibrary();\r\n    });\r\n\r\n    searchInput.addEventListener(\"keydown\", (e) => {\r\n      if (e.key === \"Enter\") {\r\n        e.preventDefault();\r\n        searchTerm = searchInput.value;\r\n        renderLibrary();\r\n        scrollToResults();\r\n      }\r\n    });\r\n\r\n    filterButtons.forEach(button => {\r\n      button.addEventListener(\"click\", () => {\r\n        filterButtons.forEach(btn => btn.classList.remove(\"active\"));\r\n        button.classList.add(\"active\");\r\n        activeFilter = button.dataset.filter;\r\n        scrollActiveFilterIntoView(button);\r\n        renderLibrary();\r\n        scrollToResults();\r\n      });\r\n    });\r\n\r\n    window.addEventListener(\"load\", () => {\r\n      heroBlock.classList.add(\"visible\");\r\n      controlsBlock.classList.add(\"visible\");\r\n      ctaBlock.classList.add(\"visible\");\r\n      renderLibrary();\r\n    });\r\n  <\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>Technical Library | Philadelphia Solar Technical Library Datasheets, Certifications, Catalogues &#038; &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"class_list":["post-4974","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/philadelphia-solar.com\/ar\/wp-json\/wp\/v2\/pages\/4974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/philadelphia-solar.com\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/philadelphia-solar.com\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/philadelphia-solar.com\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/philadelphia-solar.com\/ar\/wp-json\/wp\/v2\/comments?post=4974"}],"version-history":[{"count":5,"href":"https:\/\/philadelphia-solar.com\/ar\/wp-json\/wp\/v2\/pages\/4974\/revisions"}],"predecessor-version":[{"id":5022,"href":"https:\/\/philadelphia-solar.com\/ar\/wp-json\/wp\/v2\/pages\/4974\/revisions\/5022"}],"wp:attachment":[{"href":"https:\/\/philadelphia-solar.com\/ar\/wp-json\/wp\/v2\/media?parent=4974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}