{"id":243622,"date":"2025-10-27T14:45:23","date_gmt":"2025-10-27T14:45:23","guid":{"rendered":"https:\/\/cloudlinux.com\/?page_id=243622"},"modified":"2026-04-30T09:38:45","modified_gmt":"2026-04-30T09:38:45","slug":"directory","status":"publish","type":"page","link":"https:\/\/cloudlinux.com\/directory\/","title":{"rendered":"Partners Directory"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;\/wp-content\/uploads\/2021\/05\/main-image-find-a-partner.png&#8221; custom_padding=&#8221;100px||100px||false|false&#8221; custom_css_main_element=&#8221;box-shadow: 0px 0px 25px -10px #000&#8243; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_3,2_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; admin_label=&#8221;Column&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; header_font=&#8221;Muli|900|||||||&#8221; header_text_color=&#8221;#000000&#8243; header_font_size=&#8221;40px&#8221; custom_margin=&#8221;||0px|||&#8221; custom_css_main_element=&#8221;font-weight: 900 !important;&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Find a partner<\/h1>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Muli||||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;18px&#8221; custom_margin=&#8221;||17px|||&#8221; global_colors_info=&#8221;{}&#8221;]Do you want to be listed? Contact Us![\/et_pb_text][et_pb_button button_url=&#8221;mailto:marketing@cloudlinux.com&#8221; url_new_window=&#8221;on&#8221; button_text=&#8221;Contact Us&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_size=&#8221;14px&#8221; button_text_color=&#8221;#424242&#8243; button_border_width=&#8221;1px&#8221; button_border_color=&#8221;#424242&#8243; button_border_radius=&#8221;25px&#8221; button_use_icon=&#8221;off&#8221; custom_padding=&#8221;5px|30px|5px|30px|false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_button][\/et_pb_column][et_pb_column type=&#8221;2_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.2&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||0px||false|false&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.2&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||0px|32px|false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.2&#8243; _module_preset=&#8221;default&#8221; header_font=&#8221;|700|||||||&#8221; custom_margin=&#8221;||10px||false|false&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Find the right CloudLinux Official Partner<\/h1>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.2&#8243; _module_preset=&#8221;default&#8221; text_font_size=&#8221;18px&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Choose from more than one hundred trusted partners to help you to build and optimize your Hosting Solutions.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;0px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css?family=Roboto:300,400,500,700&#038;display=swap\"><!-- [et_pb_line_break_holder] --><link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/icon?family=Material+Icons\"><!-- [et_pb_line_break_holder] --><link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/@mui\/material@5.15.7\/dist\/css\/mui.min.css\"><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/unpkg.com\/@mui\/material@5.15.7\/dist\/umd\/mui.min.js\"><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->  \/* ===== Partner Locator (scoped) ===== *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator { --gap: 16px; --radius:16px; --soft:12px; --shadow:0 6px 24px rgba(16,24,40,.06); --line:#EAECF0; --ink:#0B1324; --muted:#6B7280; --brand:#2563EB; font-family: Roboto, system-ui, -apple-system, Segoe UI, Helvetica, Arial; color: var(--ink); }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-container { max-width: 1140px; margin: 0 auto; padding: 8px 16px; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-bar { gap: var(--gap); grid-template-columns: 1fr; margin: 24px 0 60px; }<!-- [et_pb_line_break_holder] -->  @media (min-width:768px){ #ab-partnerLocator .pl-bar{ grid-template-columns: 1fr 420px; align-items: end; } }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Search *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-search input::-webkit-search-cancel-button {<!-- [et_pb_line_break_holder] -->  -webkit-appearance: none;<!-- [et_pb_line_break_holder] -->  appearance: none;<!-- [et_pb_line_break_holder] -->  display: none;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-search { position: relative; margin: 20px 0px; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-search input{<!-- [et_pb_line_break_holder] -->    width:100%; border:1px solid var(--line); border-radius: var(--radius);<!-- [et_pb_line_break_holder] -->    padding: 14px 44px 14px 44px; font-size:16px; outline:none; background:#fff; transition:.2s border, .2s box-shadow;<!-- [et_pb_line_break_holder] -->    box-shadow: 0 1px 2px rgba(16,24,40,.04);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-search input:focus{ border-color: var(--brand); box-shadow: 0 0 0 4px rgba(37, 99, 235, .10); }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-search .pl-icon{<!-- [et_pb_line_break_holder] -->    position:absolute; left:12px; top:50%; transform: translateY(-50%); width:20px; height:20px; opacity:.6;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-search .pl-clear{<!-- [et_pb_line_break_holder] -->    position:absolute; right:10px; top:50%; transform: translateY(-50%); background:transparent; border:0; cursor:pointer; padding:6px; border-radius:10px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-search .pl-clear:hover{ background:#F2F4F7; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Filters *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-filters{ display:grid; gap: var(--gap); grid-template-columns: 1fr 1fr; }<!-- [et_pb_line_break_holder] -->  @media (min-width:992px){ #ab-partnerLocator .pl-filters{ grid-template-columns: repeat(3, 1fr); } }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-field label{ display:block; font-size:12px; letter-spacing:.02em; color:#475467; margin-bottom:6px; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-field select{<!-- [et_pb_line_break_holder] -->    width:100%; border:1px solid var(--line); border-radius:12px; padding:12px 14px; outline:none; background:#fff; font-size:14px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-actions{ display:grid; grid-template-columns: 1fr 1fr; gap:8px; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-btn{<!-- [et_pb_line_break_holder] -->    border-radius: 12px; padding: 10px 14px; font-weight:500; cursor:pointer; border:1px solid transparent; background:#fff; transition:.15s transform, .15s box-shadow, .15s background, .15s border;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-btn:active{ transform: translateY(1px); }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-btn--ghost{ border-color: var(--line); }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-btn--primary{ background: var(--brand); color:#fff; box-shadow:0 2px 8px rgba(37,99,235,.25); }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-btn--ghost:hover{ background:#F9FAFB; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-btn--primary:hover{ filter:brightness(1.02); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Grid *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-grid{ display:grid; gap: var(--gap); grid-template-columns: 1fr; margin-top: 18px; }<!-- [et_pb_line_break_holder] -->  @media (min-width:576px){ #ab-partnerLocator .pl-grid{ grid-template-columns: repeat(2, 1fr);} }<!-- [et_pb_line_break_holder] -->  @media (min-width:992px){ #ab-partnerLocator .pl-grid{ grid-template-columns: repeat(4, 1fr);} }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Card *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-card{<!-- [et_pb_line_break_holder] -->    background:#fff; border:1px solid var(--line); border-radius: var(--radius);<!-- [et_pb_line_break_holder] -->    box-shadow: var(--shadow); display:flex; flex-direction:column; height:100%; overflow:hidden;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-card__logo{<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; justify-content:center; height:120px; border-bottom:1px solid var(--line); padding:12px;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(180deg, #FCFCFD 0%, #e5e5e5 100%);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-card__logo img{ max-height:84px; max-width: 100%; object-fit: contain; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-logo-fallback{<!-- [et_pb_line_break_holder] -->    width:100%; height:100%;<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; justify-content:center; flex-direction:column;<!-- [et_pb_line_break_holder] -->    color:#98A2B3; gap:6px; text-align:center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-logo-fallback .material-icons{ font-size:34px; opacity:.8; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-logo-fallback span{ font-size:12px; font-weight:500; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-card__body{ padding:16px; display:flex; flex-direction:column; gap:8px; min-height: 190px; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-card__title{ font-size:16px; font-weight:600; line-height:1.3; margin:0; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-card__desc{ color: var(--muted); font-size:14px; line-height:1.45; margin:0; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-card__actions{ display:flex; gap:8px; padding:12px 16px 16px; margin-top:auto; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-chip{ display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; font-size:12px; border:1px solid var(--line); color:#475467; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Pagination *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-pager{ display:flex; align-items:center; justify-content:center; gap:6px; margin: 22px 0 8px; flex-wrap:wrap;}<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-page{ min-width:36px; height:36px; padding:0 10px; border-radius:10px; border:1px solid var(--line); background:#fff; cursor:pointer; font-weight:500; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-page--active{ background: var(--brand); color:#fff; border-color: transparent; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-empty{ text-align:center; border:1px dashed var(--line); border-radius: var(--radius); padding:28px; color:#667085; background:#FCFCFD; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Skeletons *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-skel{ animation: plPulse 1.2s ease-in-out infinite; background:linear-gradient(90deg, #F2F4F7 25%, #E5E7EB 37%, #F2F4F7 63%); background-size:400% 100%; border-radius:12px; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-skel.logo{ height:120px; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-skel.line{ height:14px; margin:10px 0; }<!-- [et_pb_line_break_holder] -->  @keyframes plPulse{ 0%{background-position:100% 50%} 100%{background-position:0 50%} }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Modal *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-modal {<!-- [et_pb_line_break_holder] -->    position: fixed; inset: 0; display:none; place-items:center; z-index: 9999;<!-- [et_pb_line_break_holder] -->    background: rgba(2, 6, 23, .55); backdrop-filter: blur(2px);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-modal[open]{ display:grid; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog {<!-- [et_pb_line_break_holder] -->    width:min(720px, 92vw); max-height: 86vh; overflow:auto;<!-- [et_pb_line_break_holder] -->    background:#fff; border-radius:16px; border:1px solid var(--line); box-shadow: var(--shadow);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog__head{<!-- [et_pb_line_break_holder] -->    display:flex; align-items:center; justify-content:space-between; gap:12px;<!-- [et_pb_line_break_holder] -->    padding:16px 18px; border-bottom:1px solid var(--line);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog__title{ font-size:18px; font-weight:700; margin:0; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog__body{ padding:18px; display:grid; gap:10px; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog__logo{ display:flex; align-items:center; justify-content:center; height:120px; border:1px solid var(--line); border-radius:12px; background:#FAFAFB; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog__logo img{ max-height:90px; max-width:100%; object-fit:contain; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog__meta{ display:flex; gap:8px; flex-wrap:wrap; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog__desc{ white-space:pre-wrap; line-height:1.55; color:#374151; word-break: break-word; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-close {<!-- [et_pb_line_break_holder] -->    appearance:none; border:0; background:#F2F4F7; border-radius:10px; width:36px; height:36px; cursor:pointer;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-close:hover{ background:#EAECF0; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-dialog__foot{ display:flex; gap:8px; justify-content:flex-end; padding:12px 18px 18px; }<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/* Tier colors *\/<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-chip.tier--platinum { border-color:#94a3b8; color:#334155; background:#f1f5f9; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-chip.tier--gold     { border-color:#f59e0b; color:#92400e; background:#fff7ed; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-chip.tier--silver   { border-color:#9ca3af; color:#374151; background:#f9fafb; }<!-- [et_pb_line_break_holder] -->  #ab-partnerLocator .pl-chip.tier--select   { border-color:#cbd5e1; color:#475569; background:#f8fafc; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"ab-partnerLocator\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"pl-container\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"pl-bar\"><!-- [et_pb_line_break_holder] -->      <!-- [et_pb_line_break_holder] -->  <!-- Filters --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div id=\"filters-block\" style=\"display:grid; gap:12px; grid-template-columns: 1fr;\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"pl-filters\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"pl-field\"><!-- [et_pb_line_break_holder] -->            <label for=\"geography-filter\">Geography<\/label><!-- [et_pb_line_break_holder] -->            <select id=\"geography-filter\"><option value=\"\">All<\/option><\/select><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"pl-field\"><!-- [et_pb_line_break_holder] -->            <label for=\"product-filter\">Products<\/label><!-- [et_pb_line_break_holder] -->            <select id=\"product-filter\"><option value=\"\">All<\/option><\/select><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"pl-field\"><!-- [et_pb_line_break_holder] -->            <label for=\"certified-filter\">Certified Partner<\/label><!-- [et_pb_line_break_holder] -->            <select id=\"certified-filter\"><!-- [et_pb_line_break_holder] --><option value=\"\">All<\/option><!-- [et_pb_line_break_holder] --><option value=\"yes\">Certified only<\/option><!-- [et_pb_line_break_holder] --><option value=\"no\">Not certified<\/option><!-- [et_pb_line_break_holder] -->            <\/select><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"pl-actions\"><!-- [et_pb_line_break_holder] -->          <button id=\"clear-button\" class=\"pl-btn pl-btn--ghost\">Clear<\/button><!-- [et_pb_line_break_holder] -->          <button id=\"filter-button\" class=\"pl-btn pl-btn--primary\">Apply Filters<\/button><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <!-- [et_pb_line_break_holder] -->      <!-- Search (moved below filters) --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div id=\"search-block\" class=\"pl-search\"><!-- [et_pb_line_break_holder] -->        <svg class=\"pl-icon\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28h.79l5 5 1.5-1.5-5-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"><\/path><\/svg><!-- [et_pb_line_break_holder] -->        <input id=\"search-input\" type=\"search\" placeholder=\"Search partners by name or description\" aria-label=\"Search partners\" \/><!-- [et_pb_line_break_holder] -->        <button id=\"search-clear\" class=\"pl-clear\" title=\"Clear search\" aria-label=\"Clear search\"><span class=\"material-icons\">close<\/span><\/button><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"company-grid\" class=\"pl-grid\" aria-live=\"polite\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"pagination\" class=\"pl-pager\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- Modal --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"pl-modal\" class=\"pl-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"pl-modal-title\" aria-describedby=\"pl-modal-desc\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"pl-dialog\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"pl-dialog__head\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3 id=\"pl-modal-title\" class=\"pl-dialog__title\"><\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <button class=\"pl-close\" id=\"pl-modal-close\" aria-label=\"Close\"><span class=\"material-icons\" aria-hidden=\"true\">close<\/span><\/button><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"pl-dialog__body\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"pl-dialog__logo\" id=\"pl-modal-logo\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"pl-dialog__meta\" id=\"pl-modal-meta\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div id=\"pl-modal-desc\" class=\"pl-dialog__desc\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"pl-dialog__foot\" id=\"pl-modal-foot\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->  jQuery.noConflict();<!-- [et_pb_line_break_holder] -->  jQuery(function($){<!-- [et_pb_line_break_holder] -->    \/\/ --- Inject minimal CSS for tier chips (self-contained) ---<!-- [et_pb_line_break_holder] -->    (function(){<!-- [et_pb_line_break_holder] -->      const css = `<!-- [et_pb_line_break_holder] -->      #ab-partnerLocator .pl-chip.tier--platinum { border-color:#94a3b8; color:#334155; background:#f1f5f9; }<!-- [et_pb_line_break_holder] -->      #ab-partnerLocator .pl-chip.tier--gold     { border-color:#f59e0b; color:#92400e; background:#fff7ed; }<!-- [et_pb_line_break_holder] -->      #ab-partnerLocator .pl-chip.tier--silver   { border-color:#9ca3af; color:#374151; background:#f9fafb; }<!-- [et_pb_line_break_holder] -->      #ab-partnerLocator .pl-chip.tier--select   { border-color:#cbd5e1; color:#475569; background:#f8fafc; }`;<!-- [et_pb_line_break_holder] -->      const el = document.createElement('style');<!-- [et_pb_line_break_holder] -->      el.type = 'text\/css'; el.appendChild(document.createTextNode(css));<!-- [et_pb_line_break_holder] -->      document.head.appendChild(el);<!-- [et_pb_line_break_holder] -->    })();<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/ --- Property map (HubSpot company properties) ---<!-- [et_pb_line_break_holder] -->    const F = {<!-- [et_pb_line_break_holder] -->      id: 'hs_object_id',<!-- [et_pb_line_break_holder] -->      name: 'partner_directory_name',<!-- [et_pb_line_break_holder] -->      desc: 'partner_directory_description',<!-- [et_pb_line_break_holder] -->      website: 'partner_directory_website',<!-- [et_pb_line_break_holder] -->      tier: 'partner_directory_tier',<!-- [et_pb_line_break_holder] -->      region: 'partner_directory_region',       \/\/ Geography; supports \"EMEA; APAC\"<!-- [et_pb_line_break_holder] -->      products: 'partner_directory_products',   \/\/ e.g., \"CloudLinux OS; Imunify360\"<!-- [et_pb_line_break_holder] -->      certified: 'partner_directory_certified', \/\/ non-empty = certified<!-- [et_pb_line_break_holder] -->      logoUrl: 'partner_directory_logo_url',    \/\/ preferred (URL)<!-- [et_pb_line_break_holder] -->      logoAlt: 'partner_directory_logo', \/\/ optional: if you stored URL here instead<!-- [et_pb_line_break_holder] -->      hsLogoUrl: 'hs_logo_url'<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ --- Tier ordering & icons ---<!-- [et_pb_line_break_holder] -->    const TIER_RANK = { 'Platinum': 0, 'Gold': 1, 'Silver': 2, 'Select': 3 };<!-- [et_pb_line_break_holder] -->    function tierChip(tier) {<!-- [et_pb_line_break_holder] -->      if (!tier) return '';<!-- [et_pb_line_break_holder] -->      const t = tier.trim();<!-- [et_pb_line_break_holder] -->      let icon = 'workspace_premium', cls = 'tier--select';<!-- [et_pb_line_break_holder] -->      if (\/^platinum$\/i.test(t)) { icon = 'diamond';       cls = 'tier--platinum'; }<!-- [et_pb_line_break_holder] -->      else if (\/^gold$\/i.test(t))   { icon = 'grade';         cls = 'tier--gold'; }<!-- [et_pb_line_break_holder] -->      else if (\/^silver$\/i.test(t)) { icon = 'military_tech'; cls = 'tier--silver'; }<!-- [et_pb_line_break_holder] -->      else if (\/^select$\/i.test(t)) { icon = 'workspace_premium'; cls = 'tier--select'; }<!-- [et_pb_line_break_holder] -->      return `<span class=\"pl-chip ${cls}\"><!-- [et_pb_line_break_holder] -->        <span class=\"material-icons\" style=\"font-size:14px;opacity:.7\">${icon}<\/span>${t}<!-- [et_pb_line_break_holder] -->      <\/span>`;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ --- General helpers ---<!-- [et_pb_line_break_holder] -->    const debounce = (fn, wait=300) => { let t; return (...a)=>{ clearTimeout(t); t=setTimeout(()=>fn.apply(this,a), wait); }; };<!-- [et_pb_line_break_holder] -->    const uniqueSorted = (arr) => [...new Set(arr.filter(Boolean))].sort((a,b)=>a.localeCompare(b));<!-- [et_pb_line_break_holder] -->    const getCompanyId = (c) => String((c && (c.id ?? c.properties?.[F.id])) || '');<!-- [et_pb_line_break_holder] -->    const get = (p, key) => (p?.[key] ?? '').toString().trim();<!-- [et_pb_line_break_holder] -->    const getList = (p, key) => {<!-- [et_pb_line_break_holder] -->      const v = get(p, key);<!-- [et_pb_line_break_holder] -->      if (!v) return [];<!-- [et_pb_line_break_holder] -->      return v.split(\/[;,]\/).map(s => s.trim()).filter(Boolean);<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->    const safeURL = (url) => {<!-- [et_pb_line_break_holder] -->      if (!url) return '';<!-- [et_pb_line_break_holder] -->      const a = $('<a>').prop('href', url).prop('href');<!-- [et_pb_line_break_holder] -->      return \/^https?:\\\/\\\/\/i.test(a) ? a : '';<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->    const chip = (text, icon) => text<!-- [et_pb_line_break_holder] -->      ? `<span class=\"pl-chip\"><span class=\"material-icons\" style=\"font-size:14px;opacity:.6\">${icon}<\/span>${text}<\/span>`<!-- [et_pb_line_break_holder] -->      : '';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function sortCompaniesDefault(list){<!-- [et_pb_line_break_holder] -->      return (list || []).slice().sort((a,b)=>{<!-- [et_pb_line_break_holder] -->        const pa = a.properties || {}, pb = b.properties || {};<!-- [et_pb_line_break_holder] -->        const ta = get(pa, F.tier), tb = get(pb, F.tier);<!-- [et_pb_line_break_holder] -->        const ra = TIER_RANK.hasOwnProperty(ta) ? TIER_RANK[ta] : 999;<!-- [et_pb_line_break_holder] -->        const rb = TIER_RANK.hasOwnProperty(tb) ? TIER_RANK[tb] : 999;<!-- [et_pb_line_break_holder] -->        if (ra !== rb) return ra - rb;<!-- [et_pb_line_break_holder] -->        const na = get(pa, F.name).toLowerCase();<!-- [et_pb_line_break_holder] -->        const nb = get(pb, F.name).toLowerCase();<!-- [et_pb_line_break_holder] -->        return na.localeCompare(nb);<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ --- Modal controls ---<!-- [et_pb_line_break_holder] -->    function buildWebsite(p) {<!-- [et_pb_line_break_holder] -->      const url = safeURL(get(p, F.website));<!-- [et_pb_line_break_holder] -->      return url ? `<a class=\"pl-btn pl-btn--primary\" href=\"${url}\" target=\"_blank\" rel=\"noopener\">Visit Website<\/a>` : '';<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->function normalizeLogoUrl(value) {<!-- [et_pb_line_break_holder] -->  const raw = (value ?? '').toString().trim();<!-- [et_pb_line_break_holder] -->  if (!raw) return '';<!-- [et_pb_line_break_holder] -->  if (\/^https?:\\\/\\\/\/i.test(raw)) return raw;<!-- [et_pb_line_break_holder] -->  if (\/^\\\/\\\/\/.test(raw)) return `https:${raw}`;<!-- [et_pb_line_break_holder] -->  return '';<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function getFirstValidLogoUrl(p) {<!-- [et_pb_line_break_holder] -->  const candidates = [<!-- [et_pb_line_break_holder] -->    \/\/ current expected field<!-- [et_pb_line_break_holder] -->    p?.partner_directory_logo_url,<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ explicit Partner Directory logo fallback<!-- [et_pb_line_break_holder] -->    p?.partner_directory_logo,<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ possible alternative internal names<!-- [et_pb_line_break_holder] -->    p?.logo_url,<!-- [et_pb_line_break_holder] -->    p?.partner_logo_url,<!-- [et_pb_line_break_holder] -->    p?.partner_directory_logourl,<!-- [et_pb_line_break_holder] -->    p?.partner_logo,<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ if backend ever gives resolved field later<!-- [et_pb_line_break_holder] -->    p?.partner_directory_logo_resolved_url,<!-- [et_pb_line_break_holder] -->    p?.hs_logo_url<!-- [et_pb_line_break_holder] -->  ];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  for (const value of candidates) {<!-- [et_pb_line_break_holder] -->    const url = normalizeLogoUrl(value);<!-- [et_pb_line_break_holder] -->    if (url) return url;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  return '';<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->function resolveLogoSrc(p) {<!-- [et_pb_line_break_holder] -->  const rawAlt = get(p, F.logoAlt);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ 1. \u0441\u043f\u043e\u0447\u0430\u0442\u043a\u0443 \u0448\u0443\u043a\u0430\u0454\u043c\u043e \u0431\u0443\u0434\u044c-\u044f\u043a\u0438\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0438\u0439 URL<!-- [et_pb_line_break_holder] -->  const directUrl = getFirstValidLogoUrl(p);<!-- [et_pb_line_break_holder] -->  if (directUrl) return directUrl;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ 2. \u044f\u043a\u0449\u043e \u0432 logoAlt \u0432\u0436\u0435 \u043b\u0435\u0436\u0438\u0442\u044c URL<!-- [et_pb_line_break_holder] -->  const altUrl = normalizeLogoUrl(rawAlt);<!-- [et_pb_line_break_holder] -->  if (altUrl) return altUrl;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ 3. \ud83d\udd25 \u0412\u0410\u0416\u041b\u0418\u0412\u041e: fallback \u043d\u0430 hsLogoUrl<!-- [et_pb_line_break_holder] -->  const hsUrl = normalizeLogoUrl(get(p, F.hsLogoUrl));<!-- [et_pb_line_break_holder] -->  if (hsUrl) return hsUrl;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ 4. \u044f\u043a\u0449\u043e \u0442\u0430\u043c \u0442\u0456\u043b\u044c\u043a\u0438 ID \u2014 \u043b\u043e\u0433\u0443\u0454\u043c\u043e<!-- [et_pb_line_break_holder] -->  if (\/^\\d+$\/.test(rawAlt)) {<!-- [et_pb_line_break_holder] -->    console.warn('Only HubSpot file ID found, no usable URL', {<!-- [et_pb_line_break_holder] -->      company: get(p, F.name),<!-- [et_pb_line_break_holder] -->      fileId: rawAlt,<!-- [et_pb_line_break_holder] -->      hsLogoUrl: hsUrl<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  return '';<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function logoHTML(p) {<!-- [et_pb_line_break_holder] -->  const src = resolveLogoSrc(p);<!-- [et_pb_line_break_holder] -->  const companyName = get(p, F.name) || 'Company';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  console.log('LOGO RENDER DEBUG', {<!-- [et_pb_line_break_holder] -->    company: companyName,<!-- [et_pb_line_break_holder] -->    finalSrc: src,<!-- [et_pb_line_break_holder] -->    logoField: get(p, F.logoAlt),<!-- [et_pb_line_break_holder] -->    knownLogoUrl: get(p, F.hsLogoUrl),<!-- [et_pb_line_break_holder] -->    allProps: p<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (src) {<!-- [et_pb_line_break_holder] -->    return `<img src=\"${src}\" alt=\"${companyName} logo\" class=\"logo\" loading=\"lazy\" decoding=\"async\" onerror=\"window.AB_PL_handleLogoError &#038;&#038; window.AB_PL_handleLogoError(this)\">`;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  return `<\/p>\n<div class=\"pl-logo-fallback\" aria-hidden=\"true\"><span class=\"material-icons\">image_not_supported<\/span><span>No logo<\/span><\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->    window.AB_PL_handleLogoError = function(img){<!-- [et_pb_line_break_holder] -->      if (!img) return;<!-- [et_pb_line_break_holder] -->      const wrapper = img.closest('.pl-card__logo, .pl-dialog__logo');<!-- [et_pb_line_break_holder] -->      if (!wrapper) return;<!-- [et_pb_line_break_holder] -->      wrapper.innerHTML = `<\/p>\n<div class=\"pl-logo-fallback\" aria-hidden=\"true\"><span class=\"material-icons\">image_not_supported<\/span><span>No logo<\/span><\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->    function openModal(company){<!-- [et_pb_line_break_holder] -->      const p = company?.properties || {};<!-- [et_pb_line_break_holder] -->      $('#pl-modal-title').text(get(p, F.name) || 'Partner');<!-- [et_pb_line_break_holder] -->      $('#pl-modal-logo').html(logoHTML(p));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const chips = [];<!-- [et_pb_line_break_holder] -->      const tier = get(p, F.tier);<!-- [et_pb_line_break_holder] -->      const regions = getList(p, F.region);<!-- [et_pb_line_break_holder] -->      const products = getList(p, F.products);<!-- [et_pb_line_break_holder] -->      const certified = get(p, F.certified);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (tier) chips.push(tierChip(tier));<!-- [et_pb_line_break_holder] -->      regions.forEach(r => chips.push(chip(r, 'public')));<!-- [et_pb_line_break_holder] -->      if (certified) chips.push(chip(certified, 'verified'));<!-- [et_pb_line_break_holder] -->      if (products.length) chips.push(chip(products.join(' \u2022 '), 'widgets'));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      $('#pl-modal-meta').html(chips.join(''));<!-- [et_pb_line_break_holder] -->      $('#pl-modal-desc').text(get(p, F.desc) || '\u2014');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const foot = [];<!-- [et_pb_line_break_holder] -->      const webBtn = buildWebsite(p);<!-- [et_pb_line_break_holder] -->      if (webBtn) foot.push(webBtn);<!-- [et_pb_line_break_holder] -->      foot.push(`<button class=\"pl-btn pl-btn--ghost\" id=\"pl-modal-close-secondary\">Close<\/button>`);<!-- [et_pb_line_break_holder] -->      $('#pl-modal-foot').html(foot.join(''));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      $('#pl-modal').attr('open', ''); $('body').css('overflow','hidden');<!-- [et_pb_line_break_holder] -->      setTimeout(()=>$('#pl-modal-close').trigger('focus'), 0);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    function closeModal(){ $('#pl-modal').removeAttr('open'); $('body').css('overflow',''); }<!-- [et_pb_line_break_holder] -->    window.AB_PL_openModal = function(btn){<!-- [et_pb_line_break_holder] -->      const cid = String(btn.getAttribute('data-cid') || '');<!-- [et_pb_line_break_holder] -->      const company = window.AB_PL_INDEX[cid] || (window.allCompanies || []).find(c => getCompanyId(c) === cid);<!-- [et_pb_line_break_holder] -->      if (company) openModal(company);<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ --- Global state ---<!-- [et_pb_line_break_holder] -->    window.allCompanies = [];<!-- [et_pb_line_break_holder] -->    window.AB_PL_INDEX = {};<!-- [et_pb_line_break_holder] -->    let filteredCompanies = [];<!-- [et_pb_line_break_holder] -->    let currentPage = 1;<!-- [et_pb_line_break_holder] -->    const pageSize = 12;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function renderSkeletons(count=8){<!-- [et_pb_line_break_holder] -->      const grid = $('#company-grid'); grid.empty();<!-- [et_pb_line_break_holder] -->      let html = '';<!-- [et_pb_line_break_holder] -->      for (let i=0;i<count;i++){<!-- [et_pb_line_break_holder] -->        html += `<!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"pl-card\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"pl-card__logo\">\n<div class=\"pl-skel logo\"><\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"pl-card__body\"><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"pl-skel line\" style=\"width:70%\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"pl-skel line\" style=\"width:100%\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"pl-skel line\" style=\"width:90%\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"pl-skel line\" style=\"width:80%\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"pl-card__actions\"><!-- [et_pb_line_break_holder] -->              <button class=\"pl-btn pl-btn--ghost\" disabled>Loading\u2026<\/button><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      grid.html(html); $('#pagination').empty();<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function renderGrid(){<!-- [et_pb_line_break_holder] -->      const grid = $('#company-grid'); grid.empty();<!-- [et_pb_line_break_holder] -->      const start = (currentPage - 1) * pageSize;<!-- [et_pb_line_break_holder] -->      const end = start + pageSize;<!-- [et_pb_line_break_holder] -->      const pageCompanies = filteredCompanies.slice(start, end);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (!pageCompanies.length){<!-- [et_pb_line_break_holder] -->        grid.html(`<\/p>\n<div class=\"pl-empty\">No partners match your filters. Try clearing filters or adjusting your search.<\/div>\n<p>`);<!-- [et_pb_line_break_holder] -->        $('#pagination').empty(); return;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const cards = pageCompanies.map(company => {<!-- [et_pb_line_break_holder] -->        const p = company.properties || {};<!-- [et_pb_line_break_holder] -->        const cid = getCompanyId(company);<!-- [et_pb_line_break_holder] -->        const name = get(p, F.name);<!-- [et_pb_line_break_holder] -->        const desc = get(p, F.desc);<!-- [et_pb_line_break_holder] -->        const tier = get(p, F.tier);<!-- [et_pb_line_break_holder] -->        const regions = getList(p, F.region);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        return `<!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"pl-card\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"pl-card__logo\">${logoHTML(p)}<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"pl-card__body\"><!-- [et_pb_line_break_holder] -->              <\/p>\n<h3 class=\"pl-card__title\">${name}<\/h3>\n<p><!-- [et_pb_line_break_holder] -->              <pee class=\"pl-card__desc\">${desc}<\/pee><!-- [et_pb_line_break_holder] -->              <\/p>\n<div style=\"display:flex; gap:8px; flex-wrap:wrap; margin-top:6px\"><!-- [et_pb_line_break_holder] -->                ${tierChip(tier)}<!-- [et_pb_line_break_holder] -->                ${regions.map(r=>chip(r,'public')).join('')}<!-- [et_pb_line_break_holder] -->              <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"pl-card__actions\"><!-- [et_pb_line_break_holder] -->              <button class=\"pl-btn pl-btn--ghost pl-learn\" type=\"button\" data-cid=\"${cid}\" onclick=\"window.AB_PL_openModal &#038;&#038; window.AB_PL_openModal(this)\">Learn More<\/button><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->      }).join('');<!-- [et_pb_line_break_holder] -->      grid.html(cards);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function setupPagination(){<!-- [et_pb_line_break_holder] -->      const totalPages = Math.ceil(filteredCompanies.length \/ pageSize) || 1;<!-- [et_pb_line_break_holder] -->      currentPage = Math.min(currentPage, totalPages);<!-- [et_pb_line_break_holder] -->      const pager = $('#pagination'); pager.empty();<!-- [et_pb_line_break_holder] -->      pager.append(`<button class=\"pl-page\" ${currentPage===1?'disabled':''} data-page=\"${currentPage-1}\">\u2039<\/button>`);<!-- [et_pb_line_break_holder] -->      const pagesToShow = 5;<!-- [et_pb_line_break_holder] -->      let start = Math.max(1, currentPage - Math.floor(pagesToShow\/2));<!-- [et_pb_line_break_holder] -->      let end = Math.min(totalPages, start + pagesToShow - 1);<!-- [et_pb_line_break_holder] -->      start = Math.max(1, Math.min(start, totalPages - pagesToShow + 1));<!-- [et_pb_line_break_holder] -->      for (let p = start; p <= end; p++){<!-- [et_pb_line_break_holder] -->        pager.append(`<button class=\"pl-page ${p===currentPage?'pl-page--active':''}\" data-page=\"${p}\">${p}<\/button>`);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      pager.append(`<button class=\"pl-page\" ${currentPage===totalPages?'disabled':''} data-page=\"${currentPage+1}\">\u203a<\/button>`);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function applyFilters(){<!-- [et_pb_line_break_holder] -->      const term = $('#search-input').val().toLowerCase().trim();<!-- [et_pb_line_break_holder] -->      const tier = $('#tier-filter').val();<!-- [et_pb_line_break_holder] -->      const geography = $('#geography-filter').val();<!-- [et_pb_line_break_holder] -->      const product = $('#product-filter').val();<!-- [et_pb_line_break_holder] -->      const certifiedSel = $('#certified-filter').val(); \/\/ '', 'yes', 'no'<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      filteredCompanies = (window.allCompanies || []).filter(c => {<!-- [et_pb_line_break_holder] -->        const p = c.properties || {};<!-- [et_pb_line_break_holder] -->        const name = get(p, F.name).toLowerCase();<!-- [et_pb_line_break_holder] -->        const desc = get(p, F.desc).toLowerCase();<!-- [et_pb_line_break_holder] -->        const regions = getList(p, F.region);<!-- [et_pb_line_break_holder] -->        const products = getList(p, F.products);<!-- [et_pb_line_break_holder] -->        const certifiedVal = get(p, F.certified);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        const matchesText = !term || name.includes(term) || desc.includes(term);<!-- [et_pb_line_break_holder] -->        const matchesTier = !tier || get(p, F.tier) === tier;<!-- [et_pb_line_break_holder] -->        const matchesRegion = !geography || regions.includes(geography);<!-- [et_pb_line_break_holder] -->        const matchesProduct = !product || products.includes(product);<!-- [et_pb_line_break_holder] -->        const matchesCertified =<!-- [et_pb_line_break_holder] -->          !certifiedSel ||<!-- [et_pb_line_break_holder] -->          (certifiedSel === 'yes' ? !!certifiedVal : !certifiedVal);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        return matchesText && matchesTier && matchesRegion && matchesProduct && matchesCertified;<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      filteredCompanies = sortCompaniesDefault(filteredCompanies);<!-- [et_pb_line_break_holder] -->      currentPage = 1; renderGrid(); setupPagination();<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function populateFilterOptions(){<!-- [et_pb_line_break_holder] -->      const tiers = uniqueSorted((window.allCompanies || []).map(c => get(c.properties || {}, F.tier)).filter(Boolean));<!-- [et_pb_line_break_holder] -->      const regions = uniqueSorted((window.allCompanies || []).flatMap(c => getList(c.properties || {}, F.region)));<!-- [et_pb_line_break_holder] -->      const products = uniqueSorted((window.allCompanies || []).flatMap(c => getList(c.properties || {}, F.products)));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const orderedTiers = ['Platinum','Gold','Silver','Select'].filter(t => tiers.includes(t))<!-- [et_pb_line_break_holder] -->        .concat(tiers.filter(t => !['Platinum','Gold','Silver','Select'].includes(t)));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      $('#tier-filter').html(`<option value=\"\">All<\/option>${orderedTiers.map(t=>`<option value=\"${t}\">${t}<\/option>`).join('')}`);<!-- [et_pb_line_break_holder] -->      $('#geography-filter').html(`<option value=\"\">All<\/option>${regions.map(r=>`<option value=\"${r}\">${r}<\/option>`).join('')}`);<!-- [et_pb_line_break_holder] -->      $('#product-filter').html(`<option value=\"\">All<\/option>${products.map(p=>`<option value=\"${p}\">${p}<\/option>`).join('')}`);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function indexCompanies(list){<!-- [et_pb_line_break_holder] -->      const map = {};<!-- [et_pb_line_break_holder] -->      (list || []).forEach(c => { const id = getCompanyId(c); if (id) map[id] = c; });<!-- [et_pb_line_break_holder] -->      window.AB_PL_INDEX = map;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ --- Data loader (WordPress ajax handler should return: results[], paging.next.after) ---<!-- [et_pb_line_break_holder] -->    let after = null, loading = false;<!-- [et_pb_line_break_holder] -->    function loadCompanies(){<!-- [et_pb_line_break_holder] -->      if (loading) return;<!-- [et_pb_line_break_holder] -->      loading = true; renderSkeletons(8);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      $.ajax({<!-- [et_pb_line_break_holder] -->        url: ajaxurl,<!-- [et_pb_line_break_holder] -->        type: 'POST',<!-- [et_pb_line_break_holder] -->        data: { action:'fetch_hubspot_companies', after, limit: 100 },<!-- [et_pb_line_break_holder] -->        success: function(data){<!-- [et_pb_line_break_holder] -->          console.log('RAW DATA:', data);<!-- [et_pb_line_break_holder] -->          if (data && data.results) {<!-- [et_pb_line_break_holder] -->            window.allCompanies = (window.allCompanies || []).concat(data.results);<!-- [et_pb_line_break_holder] -->            indexCompanies(window.allCompanies);<!-- [et_pb_line_break_holder] -->          }<!-- [et_pb_line_break_holder] -->          if (data && data.paging && data.paging.next){<!-- [et_pb_line_break_holder] -->            after = data.paging.next.after;<!-- [et_pb_line_break_holder] -->            loading = false;<!-- [et_pb_line_break_holder] -->            loadCompanies();<!-- [et_pb_line_break_holder] -->          } else {<!-- [et_pb_line_break_holder] -->            loading = false;<!-- [et_pb_line_break_holder] -->            \/\/ Sort once globally for initial render<!-- [et_pb_line_break_holder] -->            window.allCompanies = sortCompaniesDefault(window.allCompanies);<!-- [et_pb_line_break_holder] -->            populateFilterOptions();<!-- [et_pb_line_break_holder] -->            applyFilters();<!-- [et_pb_line_break_holder] -->          }<!-- [et_pb_line_break_holder] -->        },<!-- [et_pb_line_break_holder] -->        error: function(){<!-- [et_pb_line_break_holder] -->          loading = false;<!-- [et_pb_line_break_holder] -->          $('#company-grid').html(`<\/p>\n<div class=\"pl-empty\">Could not load partners. Please try again.<\/div>\n<p>`);<!-- [et_pb_line_break_holder] -->          $('#pagination').empty();<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ --- Events ---<!-- [et_pb_line_break_holder] -->    $('#pagination').on('click', '.pl-page', function(){<!-- [et_pb_line_break_holder] -->      const page = Number($(this).data('page'));<!-- [et_pb_line_break_holder] -->      if (!page || $(this).is(':disabled')) return;<!-- [et_pb_line_break_holder] -->      currentPage = page; renderGrid(); setupPagination();<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    $('#filter-button').on('click', applyFilters);<!-- [et_pb_line_break_holder] -->    $('#clear-button').on('click', function(){<!-- [et_pb_line_break_holder] -->      $('#search-input').val(''); $('#tier-filter').val(''); $('#geography-filter').val(''); $('#product-filter').val(''); $('#certified-filter').val('');<!-- [et_pb_line_break_holder] -->      filteredCompanies = sortCompaniesDefault(window.allCompanies);<!-- [et_pb_line_break_holder] -->      currentPage = 1; renderGrid(); setupPagination();<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    $('#search-input').on('input', debounce(applyFilters, 250));<!-- [et_pb_line_break_holder] -->    $('#search-clear').on('click', function(){ $('#search-input').val(''); applyFilters(); });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ Modal close<!-- [et_pb_line_break_holder] -->    $('#pl-modal').on('click', function(e){ if (e.target === this) closeModal(); });<!-- [et_pb_line_break_holder] -->    $('#pl-modal').on('click', '#pl-modal-close, #pl-modal-close-secondary', closeModal);<!-- [et_pb_line_break_holder] -->    $(document).on('keydown', function(e){ if ($('#pl-modal').is('[open]') && e.key === 'Escape') closeModal(); });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ Start<!-- [et_pb_line_break_holder] -->    loadCompanies();<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><b>Found errors in your listing? Message us at\u00a0<a href=\"mailto:partners@cloudlinux.com\" target=\"_blank\" rel=\"noopener\">partners@cloudlinux.com<\/a>\u00a0to fix<\/b><span>.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Find a partnerDo you want to be listed? Contact Us!Find the right CloudLinux Official PartnerChoose from more than one hundred trusted partners to help you to build and optimize your Hosting Solutions.Found errors in your listing? Message us at\u00a0partners@cloudlinux.com\u00a0to fix.<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:divi\/placeholder \/-->","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-243622","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Partners Directory - CloudLinux<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudlinux.com\/directory\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Partners Directory - CloudLinux\" \/>\n<meta property=\"og:description\" content=\"Find a partnerDo you want to be listed? Contact Us!Find the right CloudLinux Official PartnerChoose from more than one hundred trusted partners to help you to build and optimize your Hosting Solutions.Found errors in your listing? Message us at\u00a0partners@cloudlinux.com\u00a0to fix.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudlinux.com\/directory\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudLinux\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-30T09:38:45+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudlinux.com\\\/directory\\\/\",\"url\":\"https:\\\/\\\/cloudlinux.com\\\/directory\\\/\",\"name\":\"Partners Directory - CloudLinux\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudlinux.com\\\/#website\"},\"datePublished\":\"2025-10-27T14:45:23+00:00\",\"dateModified\":\"2026-04-30T09:38:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cloudlinux.com\\\/directory\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudlinux.com\\\/directory\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudlinux.com\\\/directory\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cloudlinux.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Partners Directory\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudlinux.com\\\/#website\",\"url\":\"https:\\\/\\\/cloudlinux.com\\\/\",\"name\":\"CloudLinux\",\"description\":\"For Hosting Providers &amp; Data Centers\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudlinux.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Partners Directory - CloudLinux","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudlinux.com\/directory\/","og_locale":"en_US","og_type":"article","og_title":"Partners Directory - CloudLinux","og_description":"Find a partnerDo you want to be listed? Contact Us!Find the right CloudLinux Official PartnerChoose from more than one hundred trusted partners to help you to build and optimize your Hosting Solutions.Found errors in your listing? Message us at\u00a0partners@cloudlinux.com\u00a0to fix.","og_url":"https:\/\/cloudlinux.com\/directory\/","og_site_name":"CloudLinux","article_modified_time":"2026-04-30T09:38:45+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cloudlinux.com\/directory\/","url":"https:\/\/cloudlinux.com\/directory\/","name":"Partners Directory - CloudLinux","isPartOf":{"@id":"https:\/\/cloudlinux.com\/#website"},"datePublished":"2025-10-27T14:45:23+00:00","dateModified":"2026-04-30T09:38:45+00:00","breadcrumb":{"@id":"https:\/\/cloudlinux.com\/directory\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudlinux.com\/directory\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cloudlinux.com\/directory\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudlinux.com\/"},{"@type":"ListItem","position":2,"name":"Partners Directory"}]},{"@type":"WebSite","@id":"https:\/\/cloudlinux.com\/#website","url":"https:\/\/cloudlinux.com\/","name":"CloudLinux","description":"For Hosting Providers &amp; Data Centers","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudlinux.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/cloudlinux.com\/wp-json\/wp\/v2\/pages\/243622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudlinux.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cloudlinux.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cloudlinux.com\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudlinux.com\/wp-json\/wp\/v2\/comments?post=243622"}],"version-history":[{"count":0,"href":"https:\/\/cloudlinux.com\/wp-json\/wp\/v2\/pages\/243622\/revisions"}],"wp:attachment":[{"href":"https:\/\/cloudlinux.com\/wp-json\/wp\/v2\/media?parent=243622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}