<SEC-DOCUMENT>0001171843-26-004037.txt : 20260610
<SEC-HEADER>0001171843-26-004037.hdr.sgml : 20260610
<ACCEPTANCE-DATETIME>20260610161036
ACCESSION NUMBER:		0001171843-26-004037
CONFORMED SUBMISSION TYPE:	S-8
PUBLIC DOCUMENT COUNT:		14
FILED AS OF DATE:		20260610
DATE AS OF CHANGE:		20260610
EFFECTIVENESS DATE:		20260610

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			HARVARD BIOSCIENCE INC
		CENTRAL INDEX KEY:			0001123494
		STANDARD INDUSTRIAL CLASSIFICATION:	LABORATORY ANALYTICAL INSTRUMENTS [3826]
		ORGANIZATION NAME:           	08 Industrial Applications and Services
		EIN:				043306140
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		S-8
		SEC ACT:		1933 Act
		SEC FILE NUMBER:	333-296670
		FILM NUMBER:		261079763

	BUSINESS ADDRESS:	
		STREET 1:		84 OCTOBER HILL RD
		CITY:			HOLLISTON
		STATE:			MA
		ZIP:			01746
		BUSINESS PHONE:		5088938999

	MAIL ADDRESS:	
		STREET 1:		84 OCTOBER HILL ROAD
		CITY:			HOLLISTON
		STATE:			MA
		ZIP:			01746
</SEC-HEADER>
<DOCUMENT>
<TYPE>S-8
<SEQUENCE>1
<FILENAME>fs8_060526.htm
<DESCRIPTION>FORM S-8
<TEXT>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>


<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>As filed with the Securities and Exchange Commission on June 10, 2026</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="text-align: right; margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"><B>Registration No. 333-_____</B></P>

<P STYLE="margin: 0pt; text-align: right; font-size: 10pt"><B>&nbsp;</B></P>

<P STYLE="margin: 0pt; text-align: right; font-size: 10pt"><B></B></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 0pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0pt; text-align: right; font-size: 10pt"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>UNITED STATES</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>SECURITIES AND EXCHANGE COMMISSION</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>WASHINGTON, D.C. 20549</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>FORM S-8</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>REGISTRATION STATEMENT UNDER THE SECURITIES ACT OF 1933</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>HARVARD BIOSCIENCE, INC.</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>(Exact Name of Registrant as Specified in Its Charter)</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<TABLE CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER" STYLE="font-size: 10pt; width: 100%; border-collapse: collapse">
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="width: 51%; padding-right: 2.65pt; padding-left: 2.65pt"><P STYLE="font-size: 10pt; text-align: center; margin: 2.15pt 0 1pt"><B>&nbsp;Delaware</B></P></TD>
    <TD STYLE="width: 49%; padding-top: 0pt; padding-bottom: 0pt; font-size: 10pt; text-align: center"><FONT STYLE="font-size: 10pt"><B>04-3306140</B></FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="padding-right: 2.65pt; padding-left: 2.65pt">
    <P STYLE="font-size: 10pt; text-align: center; margin: 2.15pt 0 0"><B>(State or other jurisdiction of</B></P>
    <P STYLE="font-size: 10pt; text-align: center; margin: 0 0 1pt"><B>incorporation or organization)</B></P></TD>
    <TD STYLE="padding-right: 2.65pt; padding-left: 2.65pt">
    <P STYLE="font-size: 10pt; text-align: center; margin: 2.15pt 0 0"><B>(I.R.S. Employer</B></P>
    <P STYLE="font-size: 10pt; text-align: center; margin: 0 0 1pt"><B>Identification Number)</B></P></TD></TR>
  </TABLE>
<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>84 October Hill Road</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>Holliston, Massachusetts 01746</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>(508) 893-8999</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0">(Address, including zip code, and telephone number, including area code, of
registrant&rsquo;s principal executive offices)</P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0; font-size: 10pt; text-align: center">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0 0 0 61pt"></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>HARVARD BIOSCIENCE, INC. EMPLOYEE STOCK PURCHASE PLAN</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>And </B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>AMENDED and RESTATED 2021 INCENTIVE PLAN</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>(Full Titles of the Plans)</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>John Duke, Chief Executive Officer</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>HARVARD BIOSCIENCE, INC.</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>84 October Hill Road</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>Holliston, Massachusetts 01746</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>(508) 893-8999</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>(Name, address, and telephone number, including area code, of agent for service)</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0; font-size: 10pt"></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B><I>With copies to:</I></B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>Megan Gates</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>Covington &amp; Burling LLP</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>One International Place, Suite 1020 </B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>Boston, Massachusetts 02110-2627 </B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>Tel: (617) 603-8800</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B></B></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 1pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; margin: 0 16pt 0 0">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated
filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of &ldquo;large accelerated
filer,&rdquo; &ldquo;accelerated filer,&rdquo; &ldquo;smaller reporting company&rdquo; and &ldquo;emerging growth company&rdquo; in Rule
12b-2 of the Exchange Act.</P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="width: 100%; border-collapse: collapse; font-size: 10pt">
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="width: 27%"><FONT STYLE="font-size: 10pt">Large accelerated filer</FONT></TD>
    <TD STYLE="width: 22%; padding-left: 44pt"><FONT STYLE="font-size: 10pt">&#9744;</FONT></TD>
    <TD STYLE="width: 42%; padding-left: 52pt"><FONT STYLE="font-size: 10pt">Accelerated filer</FONT></TD>
    <TD STYLE="width: 9%; padding-left: 37pt"><FONT STYLE="font-size: 10pt">&#9744;</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD><FONT STYLE="font-size: 10pt">Non-accelerated filer</FONT></TD>
    <TD STYLE="padding-left: 44pt"><FONT STYLE="font-size: 10pt">&#9746;</FONT></TD>
    <TD STYLE="padding-left: 52pt"><FONT STYLE="font-size: 10pt">Smaller reporting company</FONT></TD>
    <TD STYLE="padding-left: 37pt"><FONT STYLE="font-size: 10pt">&#9746;</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding-left: 52pt"><FONT STYLE="font-size: 10pt">Emerging growth company</FONT></TD>
    <TD STYLE="padding-left: 37pt"><FONT STYLE="font-size: 10pt">&#9744;</FONT></TD></TR>
  </TABLE>
<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0 8pt 0 0">If an emerging growth company, indicate by check mark if the registrant has elected not
to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section
7(a)(2)(B) of the Securities Act &#9744;</P>

<P STYLE="margin: 0 8pt 0 0; font-size: 10pt">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0"></P>


<!-- Field: Page; Sequence: 1; Options: NewSection -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <DIV STYLE="break-before: page; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; text-align: center; margin: 0">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>EXPLANATORY NOTE AND INCORPORATION BY REFERENCE OF PRIOR REGISTRATION STATEMENTS</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 22.05pt; margin: 0">This Registration Statement is filed by Harvard Bioscience,
Inc. (the &ldquo;Registrant&rdquo;) for the purpose of registering, pursuant to General Instruction E to Form S-8: (i) 120,000 additional
shares of the Registrant&rsquo;s common stock, par value $0.01 per share (the &ldquo;Common Stock&rdquo;) under Amendment No. 6 to the
Harvard Bioscience, Inc. Employee Stock Purchase Plan (as amended, the &ldquo;ESPP&rdquo;) and (ii) 400,000 additional shares of the Registrant&rsquo;s
Common Stock under the Amended and Restated 2021 Incentive Plan (as amended, the &ldquo;2021 Plan&rdquo;).</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 22.05pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 22.05pt; margin: 0">On April 21, 2026, the Registrant filed with the Securities
and Exchange Commission (the &ldquo;Commission&rdquo;) a definitive proxy statement that included proposals to, among other things, increase
the number of shares available for issuance under the ESPP by 120,000 shares of Common Stock and increase the number of shares available
for issuance under the 2021 Plan by 400,000 shares of Common Stock. The proposals to increase the numbers of shares available for issuance
under the ESPP and 2021 Plan were approved by the Registrant&rsquo;s stockholders on June 2, 2026. This Registration Statement registers
the 120,000 additional shares of Common Stock available for issuance under the ESPP and 400,000 additional shares of Common Stock available
for issuance under the 2021 Plan.</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 22.05pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 22.05pt; margin: 0">The additional 120,000 shares of Common Stock available
for issuance under the ESPP and the additional 400,000 shares of Common Stock available for issuance under the 2021 Plan registered pursuant
to this Registration Statement are the same class of shares as those included on registration statements on Form S-8, and post-effective
amendments thereto, filed on January 17, 2001 (File No. 333-53848), June 15, 2001 (File No. 333-53848), June 7, 2013 (File No. 333-189175),
June 5, 2017 (File No. 333-218497), May 30, 2019 (File No. 333-231825), May 19, 2021 (File No. 256295), and June 8, 2022 (File No. 333-
265487). The contents of all of these Registration Statements, including any amendments thereto or filings incorporated therein, are incorporated
herein by reference, except as modified herein.</P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>PART II</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>INFORMATION REQUIRED IN THE REGISTRATION STATEMENT</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0"><B>Item 3. Incorporation of Documents by Reference.</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.45in; margin: 0">The Registrant is subject to the informational and reporting
requirements of Sections 13(a), 14 and 15(d) of the Securities Exchange Act of 1934, as amended (the &ldquo;Exchange Act&rdquo;), and
in accordance therewith files reports, proxy statements and other information with the Commission. The following documents, which are
on file with the Commission, are hereby incorporated by reference in, and shall be deemed a part of, this Registration Statement (other
than any such documents or portions thereof that are furnished under Item 2.02 or Item 7.01 of Form 8-K, unless otherwise indicated therein,
including any exhibits included with such Items):&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0"><FONT STYLE="color: Black">&nbsp;</FONT></P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 0; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 32.8pt"></TD><TD STYLE="width: 25.2pt"><FONT STYLE="color: Black">(a)</FONT></TD><TD><FONT STYLE="color: Black">The
                                            Registrant&rsquo;s Annual Report on Form 10-K for the year ended December 31, 2025 filed
                                            with the Commission on <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326001548/hbio20251231_10k.htm">March 13, 2026</A>;</FONT></TD></TR></TABLE>

<P STYLE="font-size: 10pt; margin: 0"><FONT STYLE="color: Black">&nbsp;</FONT></P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 0; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 32.8pt"></TD><TD STYLE="width: 26.2pt"><FONT STYLE="color: Black">(b)</FONT></TD><TD><FONT STYLE="color: Black">The
                                            Registrant&rsquo;s Definitive Proxy Statement on Schedule 14A filed with the Commission on
                                            <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326002617/hbio20260420_def14a.htm">April 21, 2026</A>;</FONT></TD></TR></TABLE>

<P STYLE="font-size: 10pt; margin: 0"><FONT STYLE="color: Black">&nbsp;</FONT></P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 0; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 32.8pt"></TD><TD STYLE="width: 25.2pt"><FONT STYLE="color: Black">(c)</FONT></TD><TD><FONT STYLE="color: Black">The
                                            Registrant&rsquo;s Quarterly Report on Form 10-Q for the quarter ended March 31, 2026 filed
                                            with the Commission on <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326003311/hbio20260331_10q.htm">May 12, 2026</A>;</FONT></TD></TR></TABLE>

<P STYLE="font-size: 10pt; margin: 0 0 0 58pt"><FONT STYLE="color: Black">&nbsp;</FONT></P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 0; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 32.8pt"></TD><TD STYLE="width: 25.2pt"><FONT STYLE="color: Black">(d)</FONT></TD><TD><FONT STYLE="color: Black">The
                                            Registrant&rsquo;s Current Reports on Form 8-K filed with the Commission on <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326000343/f8k_012026.htm">January 20, 2026</A>,
                                            <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326000516/f8k_012326.htm">January 29, 2026</A>, <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326001384/f8k_030526.htm">March 6, 2026</A>, <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326001447/f8k_031026.htm">March 10, 2026</A>, <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326001504/f8k_031226.htm">March 12, 2026</A>, and <A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326003877/f8k_060226.htm">June 2, 2026</A>; and</FONT></TD></TR></TABLE>

<P STYLE="margin-top: 0; margin-bottom: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0"></P>


<!-- Field: Page; Sequence: 2 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <DIV STYLE="break-before: page; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="width: 100%; font-size: 10pt; margin-top: 0; margin-bottom: 0">
<TR STYLE="vertical-align: top">
<TD STYLE="width: 32.8pt"></TD><TD STYLE="width: 25.2pt"><FONT STYLE="color: Black">(e)</FONT></TD><TD><FONT STYLE="color: Black">The
description of the Registrant&rsquo;s Common Stock contained in the Registrant&rsquo;s registration statement on Form 8-A (File No. 000-31923)
filed with the Commission on <FONT STYLE="color: Black">November 9, 2000</FONT> under the Exchange Act, including any amendment or report
filed for the purpose of updating such description.</FONT></TD></TR>
</TABLE>

<P STYLE="margin: 0; font-size: 10pt; text-align: justify; text-indent: 32.8pt"></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.45in; margin: 0">All documents subsequently filed by the Registrant pursuant
to Sections 13(a), 13(c), 14 and 15(d) of the Exchange Act, prior to the filing of a post-effective amendment which indicates that all
securities offered hereby have been sold or which deregisters all securities then remaining unsold, shall be deemed to be incorporated
by reference in this Registration Statement and to be part hereof from the date of the filing of such documents. The Registrant is not,
however, incorporating by reference any documents or portions thereof, whether specifically listed above or filed in the future, that
are not deemed &ldquo;filed&rdquo; with the Commission, including any information furnished pursuant to Items 2.02 or 7.01 of Form 8-K
or related exhibits furnished pursuant to Item 9.01 of Form 8-K.</P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.45in; margin: 0">Any statement contained in a document incorporated or
deemed to be incorporated by reference herein shall be deemed to be modified or superseded for the purposes of this Registration Statement
to the extent that a statement contained herein or in any other subsequently filed document which also is or is deemed to be incorporated
by reference herein modifies or supersedes such statement. Any statement so modified or superseded shall not be deemed, except as so modified
or superseded, to constitute a part of this Registration Statement. Under no circumstances will any information furnished under Items
2.02 or 7.01 of Form 8-K be deemed incorporated by reference unless such Current Report on Form 8-K expressly provides to the contrary.</P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>


<!-- Field: Page; Sequence: 3 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <DIV STYLE="break-before: page; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B>&nbsp;</B></P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>EXHIBIT INDEX</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="width: 100%; font-size: 10pt; margin-top: 0; margin-bottom: 0">
<TR STYLE="border-bottom: Black 1pt solid; vertical-align: top; text-align: left">
  <TD><P STYLE="margin-top: 0; margin-bottom: 0"><B>Exhibit</B></P>
      <P STYLE="margin-top: 0; margin-bottom: 0"><B>Number</B></P></TD>
  <TD STYLE="text-align: left; vertical-align: bottom"><B>Description</B></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD>&nbsp;</TD>
  <TD STYLE="text-align: left; vertical-align: bottom">&nbsp;</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD STYLE="width: 8%"><FONT STYLE="font-size: 10pt">4.1</FONT><SUP>(1)</SUP></TD>
  <TD STYLE="width: 92%"><A HREF="https://www.sec.gov/Archives/edgar/data/1123494/000091205700047957/a2029062zex-4_1.txt">Specimen certificate for shares of Common Stock, $0.01 par value, of Harvard Bioscience, Inc.</A></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD><FONT STYLE="font-size: 10pt">4.2</FONT><SUP>(2)</SUP></TD>
  <TD><A HREF="https://www.sec.gov/Archives/edgar/data/1123494/000117184326003877/exh_102.htm">Harvard Bioscience, Inc. Employee Stock Purchase Plan, as amended.</A></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD><FONT STYLE="font-size: 10pt">4.3</FONT><SUP>(3)</SUP></TD>
  <TD><A HREF="https://www.sec.gov/ix?doc=/Archives/edgar/data/1123494/000117184326002617/hbio20260420_def14a.htm">Amended and Restated 2021 Incentive Plan</A></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD>5.1*</TD>
  <TD><A HREF="exh_51.htm">Opinion of Covington &amp; Burling LLP.</A></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD>23.1*</TD>
  <TD><A HREF="exh_231.htm">Consent of Grant Thornton LLP.</A></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD>23.2*</TD>
  <TD><A HREF="exh_51.htm">Consent of Covington &amp; Burling LLP (contained in Exhibit 5.1).</A></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD>24.1*</TD>
  <TD><A HREF="#a_001">Power of attorney (included on the signature page to this Registration Statement).</A></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD>107*</TD>
  <TD><A HREF="exh_107.htm">Filing Fee Table</A></TD></TR>
</TABLE>

<P STYLE="margin: 0; font-size: 10pt"></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 0; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0.4pt"></TD><TD STYLE="width: 16.6pt">*</TD><TD>Filed herewith.</TD></TR></TABLE>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 0; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0.4pt"></TD><TD STYLE="width: 16.6pt"><SUP>(1)</SUP></TD><TD><FONT STYLE="font-size: 10pt">Previously filed as an exhibit to the Company&rsquo;s Registration Statement on Form S-1/A (File No.
333-45996) (filed on November 9, 2000) and incorporated by reference thereto.</FONT></TD></TR></TABLE>

<P STYLE="font-size: 10pt; margin: 0"><SUP></SUP></P>

<P STYLE="font-size: 10pt; margin: 0"><SUP>&nbsp;</SUP></P>

<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" STYLE="font-size: 10pt; margin-top: 0; margin-bottom: 0"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0.4pt"></TD><TD STYLE="width: 16.6pt"><SUP>(2)</SUP></TD><TD><FONT STYLE="font-size: 10pt">Previously filed as an exhibit to the Company&rsquo;s Current Report on Form 8-K (filed on June 2, 2026)
and incorporated by reference thereto.</FONT></TD></TR></TABLE>

<P STYLE="margin-top: 0; margin-bottom: 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="width: 100%; font-size: 10pt; margin-top: 0; margin-bottom: 0">
<TR STYLE="vertical-align: top">
<TD STYLE="width: 0.4pt"></TD><TD STYLE="width: 16.6pt"><SUP>(3)</SUP></TD><TD><FONT STYLE="font-size: 10pt">Previously filed as Annex B to the Proxy Statement on Schedule 14A (filed on April 21, 2026) and incorporated by reference thereto.</FONT></TD></TR>
</TABLE>

<P STYLE="margin-top: 0; margin-bottom: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0"></P>


<!-- Field: Page; Sequence: 4 -->
    <DIV STYLE="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <DIV STYLE="break-before: page; margin-top: 6pt; margin-bottom: 6pt"><P STYLE="margin: 0pt">&nbsp;</P></DIV>
    <!-- Field: /Page -->

<P STYLE="font-size: 10pt; text-align: center; margin: 0">&nbsp;</P>

<P STYLE="margin: 0; font-size: 10pt; text-align: center"><B>SIGNATURES</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.45in; margin: 0"><FONT STYLE="font-size: 10pt">Pursuant to the requirements
of the Securities Act of 1933, the Registrant certifies that it has reasonable grounds to believe that it meets all of the requirements
for filing on Form S-8 and has duly caused this registration statement to be signed on its behalf by the undersigned, thereunto duly
authorized, in the Town of Holliston, Massachusetts, on this 10<SUP>th</SUP> day of June, 2026.</FONT></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<P STYLE="margin: 0; font-size: 10pt"></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="width: 100%; border-collapse: collapse; font-size: 10pt">
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD COLSPAN="2">HARVARD BIOSCIENCE, INC.</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="width: 50%">&nbsp;</TD>
    <TD STYLE="width: 3%"><FONT STYLE="font-size: 10pt">By:</FONT></TD>
    <TD STYLE="width: 47%; border-bottom: Black 1pt solid"><FONT STYLE="font-size: 10pt">/s/ JOHN DUKE</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD><FONT STYLE="font-size: 10pt"><I>John Duke, Chief Executive Officer</I></FONT></TD></TR>
  </TABLE>
<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0"><B><A NAME="a_001"></A>POWER OF ATTORNEY</B></P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.45in; margin: 0">KNOW ALL BY THESE PRESENTS that each individual whose
signature appears below constitutes and appoints each of John Duke and Mark Frost as such person&rsquo;s true and lawful attorney-in-fact
and agent with full power of substitution and resubstitution, for such person in such person&rsquo;s name, place and stead, in any and
all capacities, to sign any and all amendments (including post-effective amendments) to this registration statement (or any registration
statement for the same offering that is to be effective upon filing pursuant to Rule 462(b) under the Securities Act of 1933), and to
file the same, with all exhibits thereto, and all documents in connection therewith, with the Securities and Exchange Commission, granting
unto each said attorney-in-fact and agent full power and authority to do and perform each and every act and thing requisite and necessary
to be done in and about the premises, as fully to all intents and purposes as such person might or could do in person, hereby ratifying
and confirming all that any said attorney-in-fact and agent, or any substitute or substitutes of any of them, may lawfully do or cause
to be done by virtue hereof.</P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: justify; text-indent: 0.45in; margin: 0">Pursuant to the requirements of the Securities Act of
1933, this registration statement has been signed by the following persons in the capacities and on the date indicated. Each person listed
below has signed this registration statement as an officer or director of Harvard Bioscience, Inc.</P>

<P STYLE="font-size: 10pt; margin: 0">&nbsp;</P>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="width: 100%; border-collapse: collapse; font-size: 10pt">
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="text-align: center; width: 33%; padding-left: 0pt"><FONT STYLE="font-size: 10pt"><B>Signature</B></FONT></TD>
    <TD STYLE="text-align: center; width: 44%; padding-left: 0pt"><FONT STYLE="font-size: 10pt"><B>Title</B></FONT></TD>
    <TD STYLE="padding: 0pt; text-align: center; width: 23%"><FONT STYLE="font-size: 10pt"><B>Date</B></FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="padding-left: 75pt">&nbsp;</TD>
    <TD STYLE="padding-left: 119pt">&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="border-bottom: Black 1pt solid"><FONT STYLE="font-size: 10pt">/s/ John Duke</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">President, Chief Executive Officer and Director</FONT></TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt"><FONT STYLE="font-size: 10pt">June 10, 2026</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD><FONT STYLE="font-size: 10pt">John Duke</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">(Principal Executive Officer)</FONT></TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="border-bottom: Black 1pt solid"><FONT STYLE="font-size: 10pt">/s/ Mark Frost</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">Chief Financial Officer</FONT></TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt"><FONT STYLE="font-size: 10pt">June 10, 2026</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD><FONT STYLE="font-size: 10pt">Mark Frost</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">(Principal Financial Officer and Accounting Officer)</FONT></TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="border-bottom: Black 1pt solid"><FONT STYLE="font-size: 10pt">/s/ Katherine A. Eade</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">Director</FONT></TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt"><FONT STYLE="font-size: 10pt">June 10, 2026</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD><FONT STYLE="font-size: 10pt">Katherine A. Eade</FONT></TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD><FONT STYLE="font-size: 10pt">/s/ Robert Gagnon</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">Director</FONT></TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt"><FONT STYLE="font-size: 10pt">June 10, 2026</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="border-top: Black 1pt solid"><FONT STYLE="font-size: 10pt">Robert Gagnon</FONT></TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD><FONT STYLE="font-size: 10pt">/s/ Seth Benson</FONT></TD>
    <TD><FONT STYLE="font-size: 10pt">Director</FONT></TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt"><FONT STYLE="font-size: 10pt">June 10, 2026</FONT></TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="border-top: Black 1pt solid"><FONT STYLE="font-size: 10pt">Seth Benson</FONT></TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="border-bottom: Black 1pt solid">/s/ Stephen DeNelsky</TD>
    <TD>Director</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">June 10, 2026</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>Stephen DeNelsky</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD STYLE="border-bottom: Black 1pt solid">/s/ William Snider</TD>
    <TD>Director</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">June 10, 2026</TD></TR>
  <TR STYLE="vertical-align: bottom">
    <TD>William Snider</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="padding: 0pt; text-indent: 0pt">&nbsp;</TD></TR>
  </TABLE>



<P STYLE="font-size: 10pt; text-align: right; margin: 0"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; margin: 0"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 3pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0; font-size: 10pt"></P>









</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-5.1
<SEQUENCE>2
<FILENAME>exh_51.htm
<DESCRIPTION>EXHIBIT 5.1
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: right; margin: 0pt 0"><B>Exhibit 5.1</B></P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-align: right"><B>&nbsp;</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0; color: Red"><B><IMG SRC="covingtonhead.jpg" ALT="" STYLE="height: 96px; width: 700px"></B></P>

<P STYLE="font-size: 10pt; text-align: right; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-align: right">June 10, 2026</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">Harvard Bioscience, Inc.<BR>
84 October Hill Road<BR>
Holliston, Massachusetts 01746</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">Ladies and Gentlemen:</P>

<P STYLE="margin: 0pt 0; font-size: 10pt">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 24.5pt; margin: 0pt 0">We have acted as counsel to Harvard Bioscience, Inc., a Delaware corporation
(the &#8220;Company&#8221;), and are rendering this opinion in connection with the registration by the Company under the Securities Act
of 1933 (the &#8220;Act&#8221;), of the offer and sale of (i) 400,000 shares (the &#8220; 2021 Plan Shares&#8221;) of the Company&#8217;s
common stock, par value $0.01 per share (the &#8220;Common Stock&#8221;) issuable under the Company&#8217;s Amended and Restated 2021
Equity Incentive Plan (the &#8220;2021 Plan&#8221;) and (ii) 120,000 shares (the &#8220;ESPP Shares&#8221;, and together with the 2021
Plan Shares, the &#8220;Shares&#8221;) of the Company&#8217;s Common Stock issuable under the Company&#8217;s Employee Stock Purchase
Plan, as amended (the &#8220;ESPP&#8221;), pursuant to the registration statement on Form S-8 being filed with the United States Securities
and Exchange Commission on the date hereof (the &#8220;Registration Statement&#8221;).</P>

<P STYLE="font-size: 10pt; text-indent: 24.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 24.5pt">We have reviewed the 2021 Plan, the ESPP, the Registration Statement and
such corporate records, certificates and other documents, and such questions of law, as we have deemed necessary or appropriate for the
purposes of this opinion. We have assumed that all signatures are genuine, that all documents submitted to us as originals are authentic
and that all copies of documents submitted to us conform to the originals.</P>

<P STYLE="font-size: 10pt; text-indent: 24.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 24.5pt">We have assumed that the Shares will be duly registered on the books of
the transfer agent and registrar of the Common Stock and that the Company will comply with applicable notice requirements regarding uncertificated
shares provided under the Delaware General Corporation Law (the &#8220;DGCL&#8221;).</P>

<P STYLE="font-size: 10pt; text-indent: 24.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 24.5pt">We have assumed further that, except as to legal conclusions expressly
set forth in this opinion, the information and representations and warranties contained in the agreements, instruments, records, certificates
and other documents we reviewed were true, accurate and complete as of their stated date and are true, accurate and complete as of the
date of this letter.</P>

<P STYLE="font-size: 10pt; text-indent: 24.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 24.5pt">We have relied as to certain matters on information obtained from public
officials, officers of the Company and other sources believed by us to be responsible.</P>

<P STYLE="font-size: 10pt; text-indent: 24.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 24.5pt">Based upon the foregoing, we are of the opinion that the Shares have been
duly authorized and, when issued and paid for in accordance with the terms of the Company&#8217;s Second Amended and Restated Certificate
of Incorporation, as amended, and in accordance with, as applicable, the 2021 Plan, the ESPP and any individual agreements relating to
such Shares, will be validly issued, fully paid and nonassessable.</P>

<P STYLE="font-size: 10pt; text-indent: 24.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 24.5pt">We are members of the bar of the Commonwealth of Massachusetts. We do not
express any opinion herein on any laws other than the DGCL.</P>

<P STYLE="font-size: 10pt; text-indent: 24.5pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 24.5pt">We hereby consent to the filing of this opinion as Exhibit 5.1 to the Registration
Statement. In giving such consent, we do not thereby admit that we are in the category of persons whose consent is required under Section
7 of the Act.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 3in">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<TR STYLE="vertical-align: top; text-align: left">
  <TD STYLE="width: 50%">&nbsp;</TD>
  <TD STYLE="width: 50%">Very truly yours,</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
  <TD>&nbsp;</TD>
  <TD>/s/ Covington &amp; Burling LLP</TD></TR>
</TABLE>

<P STYLE="margin: 0pt 0 0pt 3in; font-size: 10pt"></P>

<P STYLE="margin: 0pt 0 0pt 3in; font-size: 10pt"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 3in"></P>



<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 3pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>3
<FILENAME>exh_231.htm
<DESCRIPTION>EXHIBIT 23.1
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: right; margin: 0pt 0"><B>Exhibit 23.1</B></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 6pt 0pt 0">We have issued our report dated March 13, 2026 with respect to the consolidated financial
statements of Harvard Bioscience, Inc., included in the Annual Report on Form 10-K for the year ended December 31, 2025, which is incorporated
by reference in this Registration Statement. We consent to the incorporation by reference of the aforementioned report in this Registration
Statement.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">/s/ GRANT THORNTON LLP</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">Hartford, Connecticut</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">June 10, 2026</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-FILING FEES
<SEQUENCE>4
<FILENAME>exh_107.htm
<DESCRIPTION>EXHIBIT 107
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dei="http://xbrl.sec.gov/dei/2026" xmlns:ffd="http://xbrl.sec.gov/ffd/2026">
  <head>
    <title>EX-FILING FEES</title>
  </head>
  <body>
    <div style="font-size: 10pt; display: none">
      <ix:header>
        <ix:hidden>
          <ix:nonNumeric name="ffd:FormTp" contextRef="rc" id="ixv-189">S-8</ix:nonNumeric>
          <ix:nonNumeric name="ffd:SubmissnTp" contextRef="rc" id="ixv-190">S-8</ix:nonNumeric>
          <ix:nonNumeric name="ffd:FeeExhibitTp" contextRef="rc" id="ixv-191">EX-FILING FEES</ix:nonNumeric>
          <ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="rc" id="ixv-192">0001123494</ix:nonNumeric>
          <ix:nonNumeric name="dei:EntityRegistrantName" contextRef="rc" id="ixv-193">HARVARD BIOSCIENCE INC</ix:nonNumeric>
          <ix:nonNumeric name="ffd:OfferingTableNa" contextRef="rc" id="hiddenrcOfferingTableNa" xsi:nil="true"></ix:nonNumeric>
          <ix:nonNumeric name="ffd:OffsetTableNa" contextRef="rc" id="hiddenrcOffsetTableNa">N/A</ix:nonNumeric>
          <ix:nonNumeric name="ffd:PrevslyPdFlg" contextRef="offrl_1" format="ixt:booleanfalse" id="ixv-196">Fees to be Paid</ix:nonNumeric>
          <ix:nonNumeric name="ffd:PrevslyPdFlg" contextRef="offrl_2" format="ixt:booleanfalse" id="ixv-197">Fees to be Paid</ix:nonNumeric>
        </ix:hidden>
        <ix:references>
          <link:schemaRef xlink:href="https://xbrl.sec.gov/ffd/2026/ffd-2026.xsd" xlink:type="simple"/>
        </ix:references>
        <ix:resources>
          <xbrli:context id="rc">
            <xbrli:entity>
              <xbrli:identifier scheme="http://www.sec.gov/CIK">0001123494</xbrli:identifier>
            </xbrli:entity>
            <xbrli:period>
              <xbrli:startDate>2026-06-08</xbrli:startDate>
              <xbrli:endDate>2026-06-08</xbrli:endDate>
            </xbrli:period>
          </xbrli:context>
          <xbrli:context id="offrl_1">
            <xbrli:entity>
              <xbrli:identifier scheme="http://www.sec.gov/CIK">0001123494</xbrli:identifier>
              <xbrli:segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                  <dei:lineNo>1</dei:lineNo>
                </xbrldi:typedMember>
              </xbrli:segment>
            </xbrli:entity>
            <xbrli:period>
              <xbrli:startDate>2026-06-08</xbrli:startDate>
              <xbrli:endDate>2026-06-08</xbrli:endDate>
            </xbrli:period>
          </xbrli:context>
          <xbrli:context id="offrl_2">
            <xbrli:entity>
              <xbrli:identifier scheme="http://www.sec.gov/CIK">0001123494</xbrli:identifier>
              <xbrli:segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                  <dei:lineNo>2</dei:lineNo>
                </xbrldi:typedMember>
              </xbrli:segment>
            </xbrli:entity>
            <xbrli:period>
              <xbrli:startDate>2026-06-08</xbrli:startDate>
              <xbrli:endDate>2026-06-08</xbrli:endDate>
            </xbrli:period>
          </xbrli:context>
          <xbrli:unit id="USD">
            <xbrli:measure>iso4217:USD</xbrli:measure>
          </xbrli:unit>
          <xbrli:unit id="pure">
            <xbrli:measure>xbrli:pure</xbrli:measure>
          </xbrli:unit>
          <xbrli:unit id="Shares">
            <xbrli:measure>xbrli:shares</xbrli:measure>
          </xbrli:unit>
        </ix:resources>
      </ix:header>
    </div>
    <div style="font-size: 10pt">
     <p style="margin: 0; font-size: 10pt; text-align: right"><b>Exhibit 107</b></p>
      <table style="font: 10pt Arial, Helvetica, sans-serif; width: 99%; text-align: center">
        <tr style="font-size: 10pt">
          <td colspan="4" style="font-size: 10pt; padding-bottom: 0.5em">
            <p style="font-size: 10pt">
              <b>Calculation of Filing Fee Tables</b>
            </p>
          </td>
        </tr>
        <tr style="font-size: 10pt">
          <td style="font-size: 10pt; padding-bottom: 0.25em">
            <p style="font-size: 10pt">
              <b>
                <ix:nonNumeric name="ffd:FormTp" contextRef="rc" id="ixv-231">S-8</ix:nonNumeric>
              </b>
            </p>
          </td>
        </tr>
        <tr style="font-size: 10pt">
          <td style="font-size: 10pt; padding-bottom: 0.25em">
            <p style="font-size: 10pt">
              <b>
                <ix:nonNumeric name="dei:EntityRegistrantName" contextRef="rc" id="ixv-232">HARVARD BIOSCIENCE INC</ix:nonNumeric>
              </b>
            </p>
          </td>
        </tr>
      </table>
    </div>
    <div style="font-size: 10pt; padding-bottom: 20px">
      <table style="font-size: 10pt; float: center; width: 100%; text-align: left">
        <tr style="font: 10pt Arial, Helvetica, sans-serif">
          <th style="font-size: 10pt; vertical-align: bottom; text-align: center; width: 90%; word-wrap: break-word">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Table 1: Newly Registered Securities</b>
            </p>
          </th>
        </tr>
      </table>
      <table style="border: black 1px solid; font: 10pt Arial, Helvetica, sans-serif; float: center; width: 90%; text-align: center; margin-left: auto; margin-right: auto">
        <tr style="font-size: 10pt; background-color: #9ADAF6">
          <th style="font-size: 10pt; width: 2%">
            <!-- BLANK -->
          </th>
          <th style="font-size: 10pt; width: 10%">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Security Type</b>
            </p>
          </th>
          <th style="font-size: 10pt; width: 10%">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Security Class Title </b>
            </p>
          </th>
          <th style="font-size: 10pt; width: 10%">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Fee Calculation Rule</b>
            </p>
          </th>
          <th style="font-size: 10pt; width: 10%">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Amount Registered</b>
            </p>
          </th>
          <th style="font-size: 10pt; width: 15%">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Proposed Maximum Offering Price Per Unit</b>
            </p>
          </th>
          <th style="font-size: 10pt; width: 15%">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Maximum Aggregate Offering Price</b>
            </p>
          </th>
          <th style="font-size: 10pt; width: 3%">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Fee Rate</b>
            </p>
          </th>
          <th style="font-size: 10pt; width: 15%">
            <p style="font-size: 10pt; margin: 0pt; text-align: center">
              <b>Amount of Registration Fee</b>
            </p>
          </th>
        </tr>
        <tr style="font-size: 10pt; background-color: #E7E7E2">
          <td style="font-size: 10pt; text-align: center">
		1
	</td>
          <td style="font-size: 10pt; text-align: left">
            <ix:nonNumeric name="ffd:OfferingSctyTp" contextRef="offrl_1" id="ixv-233">Equity</ix:nonNumeric>
          </td>
          <td style="font-size: 10pt; text-align: left">
            <ix:nonNumeric name="ffd:OfferingSctyTitl" contextRef="offrl_1" id="ixv-234">Common Stock, $0.01 par value per share</ix:nonNumeric>
          </td>
          <td style="font-size: 10pt; text-align: center">
            <ix:nonNumeric name="ffd:FeesOthrRuleFlg" contextRef="offrl_1" format="ixt:booleantrue" id="ixv-235">Other</ix:nonNumeric>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <ix:nonFraction name="ffd:AmtSctiesRegd" unitRef="Shares" decimals="0" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-236">400,000</ix:nonFraction>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <span>$</span>
            <ix:nonFraction name="ffd:MaxOfferingPricPerScty" unitRef="USD" decimals="2" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-237">6.38</ix:nonFraction>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <span>$</span>
            <ix:nonFraction name="ffd:MaxAggtOfferingPric" unitRef="USD" decimals="2" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-238">2,552,000.00</ix:nonFraction>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <ix:nonFraction name="ffd:FeeRate" unitRef="pure" decimals="7" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-239">0.0001381</ix:nonFraction>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <span>$</span>
            <ix:nonFraction name="ffd:FeeAmt" unitRef="USD" decimals="2" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-240">352.43</ix:nonFraction>
          </td>
        </tr>
        <tr style="font-size: 10pt; background-color: #E7E7E2">
          <td style="font-size: 10pt; text-align: center">
		2
	</td>
          <td style="font-size: 10pt; text-align: left">
            <ix:nonNumeric name="ffd:OfferingSctyTp" contextRef="offrl_2" id="ixv-241">Equity</ix:nonNumeric>
          </td>
          <td style="font-size: 10pt; text-align: left">
            <ix:nonNumeric name="ffd:OfferingSctyTitl" contextRef="offrl_2" id="ixv-242">Common Stock, $0.01 par value per share</ix:nonNumeric>
          </td>
          <td style="font-size: 10pt; text-align: center">
            <ix:nonNumeric name="ffd:FeesOthrRuleFlg" contextRef="offrl_2" format="ixt:booleantrue" id="ixv-243">Other</ix:nonNumeric>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <ix:nonFraction name="ffd:AmtSctiesRegd" unitRef="Shares" decimals="0" format="ixt:numdotdecimal" contextRef="offrl_2" id="ixv-244">120,000</ix:nonFraction>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <span>$</span>
            <ix:nonFraction name="ffd:MaxOfferingPricPerScty" unitRef="USD" decimals="2" format="ixt:numdotdecimal" contextRef="offrl_2" id="ixv-245">6.38</ix:nonFraction>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <span>$</span>
            <ix:nonFraction name="ffd:MaxAggtOfferingPric" unitRef="USD" decimals="2" format="ixt:numdotdecimal" contextRef="offrl_2" id="ixv-246">765,600.00</ix:nonFraction>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <ix:nonFraction name="ffd:FeeRate" unitRef="pure" decimals="7" format="ixt:numdotdecimal" contextRef="offrl_2" id="ixv-247">0.0001381</ix:nonFraction>
          </td>
          <td style="font-size: 10pt; text-align: right">
            <span>$</span>
            <ix:nonFraction name="ffd:FeeAmt" unitRef="USD" decimals="2" format="ixt:numdotdecimal" contextRef="offrl_2" id="ixv-248">105.73</ix:nonFraction>
          </td>
        </tr>
        <tr style="font-size: 10pt">
          <td colspan="5" style="font-size: 10pt; vertical-align: top">
            <p style="font-size: 10pt; margin: 0pt; text-align: right">Total Offering Amounts:</p>
          </td>
          <td style="font-size: 10pt">
            <!-- BLANK -->
          </td>
          <td style="font-size: 10pt; vertical-align: top; width: 16%">
            <p id="MaxAggtOfferingPrice" style="font-size: 10pt; margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlOfferingAmt" contextRef="rc" decimals="2" format="ixt:numdotdecimal" unitRef="USD" id="ixv-249">3,317,600.00</ix:nonFraction>
            </p>
          </td>
          <td style="font-size: 10pt">
            <!-- BLANK -->
          </td>
          <td style="font-size: 10pt; vertical-align: top; border-bottom-color: black; border-bottom-width: 1px; width: 16%">
            <p id="TotalFeeAmt" style="font-size: 10pt; margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlFeeAmt" contextRef="rc" decimals="2" format="ixt:numdotdecimal" unitRef="USD" id="ixv-250">458.16</ix:nonFraction>
            </p>
          </td>
        </tr>
        <tr style="font-size: 10pt">
          <td colspan="5" style="font-size: 10pt; vertical-align: top">
            <p style="font-size: 10pt; margin: 0pt; text-align: right">
					Total Fee Offsets:
				</p>
          </td>
          <td style="font-size: 10pt">
            <!-- BLANK -->
          </td>
          <td style="font-size: 10pt">
            <!-- BLANK -->
          </td>
          <td style="font-size: 10pt">
            <!-- BLANK -->
          </td>
          <td style="font-size: 10pt; vertical-align: top">
            <p id="TotalOffsetAmt" style="font-size: 10pt; margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlOffsetAmt" contextRef="rc" decimals="2" format="ixt:numdotdecimal" unitRef="USD" id="ixv-251">0.00</ix:nonFraction>
            </p>
          </td>
        </tr>
        <tr style="font-size: 10pt">
          <td colspan="5" style="font-size: 10pt; vertical-align: top">
            <p style="font-size: 10pt; margin: 0pt; text-align: right">
					Net Fee Due:
				</p>
          </td>
          <td style="font-size: 10pt">
            <!-- BLANK -->
          </td>
          <td style="font-size: 10pt">
            <!-- BLANK -->
          </td>
          <td style="font-size: 10pt">
            <!-- BLANK -->
          </td>
          <td style="font-size: 10pt; vertical-align: top">
            <p id="NetFeeAmt" style="font-size: 10pt; margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:NetFeeAmt" contextRef="rc" decimals="2" format="ixt:numdotdecimal" unitRef="USD" id="ixv-252">458.16</ix:nonFraction>
            </p>
          </td>
        </tr>
      </table>
    </div>
    <div style="font-size: 10pt">
      <table style="font-size: 10pt; width: 90%; margin-left: auto; margin-right: auto; text-indent: 0px">
        <tbody style="font-size: 10pt">
          <tr style="font: 10pt Arial, Helvetica, sans-serif; vertical-align: top">
            <td style="font-size: 10pt">
              <p style="font-size: 10pt; margin: 0pt; text-align: left; margin-bottom: 5px">
                <b>Offering Note</b>
              </p>
            </td>
            <td style="font-size: 10pt"/>
          </tr>
        </tbody>
      </table>
    </div>
    <div style="font-size: 10pt; padding-bottom: 20px">
      <table style="font-size: 10pt; width: 90%; margin-left: auto; margin-right: auto; text-indent: 0px">
        <tr style="font: 10pt Arial, Helvetica, sans-serif; vertical-align: top">
          <td style="font-size: 10pt; width: 10pt">
            <p style="font-size: 10pt; margin: 0pt; text-align: left">
              <sup style="vertical-align:top;line-height:120%;font-size:10px">1</sup>
            </p>
          </td>
          <td colspan="7" style="font-size: 10pt; white-space: pre-line">
            <ix:nonNumeric name="ffd:OfferingNote" escape="1" contextRef="offrl_1" id="ixv-253">(1)	Pursuant to Rule 416 under the Securities Act of 1933, as amended (the "Securities Act"), this registration statement also covers such an indeterminate amount of shares of common stock, par value $0.01 per share ("Common Stock"), as may become issuable to prevent dilution resulting from stock splits, stock dividends and similar events.
(2)	The amount registered consists of up to 400,000 shares of Common Stock issuable pursuant to the Registrant's Employee Stock Purchase Plan, as amended.
(3)	The proposed maximum offering price per unit is estimated solely for the purpose of calculating the registration fee, based on the average of the high and low prices of the shares of Common Stock on the Nasdaq Capital Market on June 4, 2026 (such date being within five business days of the date that this registration statement was first filed with the Securities and Exchange Commission, in accordance with Rule 457(c) under the Securities Act).
</ix:nonNumeric>
          </td>
        </tr>
        <tr style="font-size: 10pt">
          <td colspan="7" style="font-size: 10pt">
            <hr style="width:100%;text-align:left;margin-left:0"/>
          </td>
        </tr>
        <tr style="font: 10pt Arial, Helvetica, sans-serif; vertical-align: top">
          <td style="font-size: 10pt; width: 10pt">
            <p style="font-size: 10pt; margin: 0pt; text-align: left">
              <sup style="vertical-align:top;line-height:120%;font-size:10px">2</sup>
            </p>
          </td>
          <td colspan="7" style="font-size: 10pt; white-space: pre-line">
            <ix:nonNumeric name="ffd:OfferingNote" escape="1" contextRef="offrl_2" id="ixv-254">(1)	Pursuant to Rule 416 under the Securities Act of 1933, as amended (the "Securities Act"), this registration statement also covers such an indeterminate amount of shares of common stock, par value $0.01 per share ("Common Stock"), as may become issuable to prevent dilution resulting from stock splits, stock dividends and similar events.
(2)	The The amount registered consists of up to 120,000 shares of Common Stock issuable pursuant to the Amended and Restated 2021 Incentive Plan.
(3)	The proposed maximum offering price per unit is estimated solely for the purpose of calculating the registration fee, based on the average of the high and low prices of the shares of Common Stock on the Nasdaq Capital Market on June 4, 2026 (such date being within five business days of the date that this registration statement was first filed with the Securities and Exchange Commission, in accordance with Rule 457(c) under the Securities Act). </ix:nonNumeric>
          </td>
        </tr>
        <tr style="font-size: 10pt">
          <td colspan="7" style="font-size: 10pt">
            <hr style="width:100%;text-align:left;margin-left:0"/>
          </td>
        </tr>
      </table>
    </div>
    <div style="font-size: 10pt; padding-bottom: 20px">
      <table style="font-size: 10pt; float: center; width: 100%; text-align: left">
        <tr style="font: 10pt Arial, Helvetica, sans-serif">
          <th style="font-size: 10pt; vertical-align: bottom; text-align: left; word-wrap: break-word">
            <b>Table 2: Fee Offset Claims and Sources</b>
          </th>
          <th style="font-size: 10pt; vertical-align: bottom; word-wrap: break-word; text-align: right">
            <span style="-sec-ix-hidden: hiddenrcOffsetTableNa">&#9745;Not Applicable</span>
          </th>
        </tr>
      </table>
      <table style="border: black 1px solid; font: 10pt Arial, Helvetica, sans-serif; float: center; width: 100%; text-align: center">
        <tr style="font-size: 10pt; background-color: #9ADAF6">
          <th style="font-size: 10pt; width: 10%; text-align: left">
            <!-- BLANK -->
          </th>
          <th style="font-size: 10pt; width: 8%; text-align: left">
            <!-- BLANK -->
          </th>
          <th style="font-size: 10pt; width: 16%">
				Registrant or Filer Name
			</th>
          <th style="font-size: 10pt; width: 6%">
				Form or Filing Type
			</th>
          <th style="font-size: 10pt; width: 7%">
				File Number
			</th>
          <th style="font-size: 10pt; width: 6%">
				Initial Filing Date
			</th>
          <th style="font-size: 10pt; width: 6%">
				Filing Date
			</th>
          <th style="font-size: 10pt; width: 6%">
				Fee Offset Claimed
			</th>
          <th style="font-size: 10pt; width: 6%">
				Security Type Associated with Fee Offset Claimed
			</th>
          <th style="font-size: 10pt; width: 8%">
				Security Title Associated with Fee Offset Claimed
			</th>
          <th style="font-size: 10pt; width: 6%">
				Unsold Securities Associated with Fee Offset Claimed
			</th>
          <th style="font-size: 10pt; width: 9%">
				Unsold Aggregate Offering Amount Associated with Fee Offset Claimed
			</th>
          <th style="font-size: 10pt; width: 6%">
				Fee Paid with Fee Offset Source
			</th>
        </tr>
        <tr style="font-size: 10pt">
          <td colspan="14" style="font-size: 10pt; text-align: center">
            <b>Rule 457(p)</b>
          </td>
        </tr>
        <tr style="font-size: 10pt; background-color: #E7E7E2">
          <td style="font-size: 10pt; text-align: left">
		Fee Offset Claims
	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt; text-align: left">

	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt; text-align: right">

	</td>
          <td style="font-size: 10pt; text-align: left">

	</td>
          <td style="font-size: 10pt; text-align: left">

	</td>
          <td style="font-size: 10pt; text-align: right">

	</td>
          <td style="font-size: 10pt; text-align: right">

	</td>
          <td style="font-size: 10pt; text-align: right">

	</td>
        </tr>
        <tr style="font-size: 10pt; background-color: #E7E7E2">
          <td style="font-size: 10pt; text-align: left">
		Fee Offset Sources
	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt; text-align: left">

	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt">

	</td>
          <td style="font-size: 10pt; text-align: right">

	</td>
          <td style="font-size: 10pt; text-align: left">

	</td>
          <td style="font-size: 10pt; text-align: left">

	</td>
          <td style="font-size: 10pt; text-align: right">

	</td>
          <td style="font-size: 10pt; text-align: right">

	</td>
          <td style="font-size: 10pt; text-align: right">

	</td>
        </tr>
      </table>
    </div>
  </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>5
<FILENAME>covingtonhead.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 covingtonhead.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0@)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" "& \\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HJ
MC-K.F6\OE37]NDF<;6D -6XIHYXQ)$ZNAZ,IR* 'T454N=3L;-MMS=PQ-Z.X
M% %NBHH+F"Z3?!,DB^J-FG2RI#&TDCA$49+$X H ?15>VOK6]W?9KB.;;][8
MP.*G)"@DG ')- "T55M]1LKJ4QV]U%*XZJC D4ZYO[2RV_:;F*'=TWL!F@"Q
M12*RNH92"I&01W%5VU"S6Z^S-=1"?IY98;ORH LT455AU&RN)C##=122CJBL
M": +5%%0W%Y;6JYN)XXA_ML!0!-15>WO[2[)%O<Q2D==C U.2%!). .2: %H
MJA_;FE?]!"V_[^"C^W-*_P"@A;?]_!0!?HJ&WNK>[C+V\R2H#C*'(J5F5%+,
M0%'4F@!:*HKK&FM($6^MRY.,"09J\#D9'2@ HJ.::*WB:6:18XUZLQP!3;:[
MM[R,R6TR2H#@LC9&: )J*AN;NWLXP]S,D2$X!=L FGPS1W$2RPNKQMT93D&@
M!]%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !7"^.-?NHKF/2+!G1W ,C(>3GHHKNJ\O\ %@;3?&\5]*K&(M'*,C@@
M8!'Z4 :5G\.$>T#7=ZZSL,D(N0I_K6EX8\+WNAZA</+>E[;HD:DX?W(KIK:Y
MANK=)X)%>-QE64\&DAO+:XEEBAGC>2(X=5;)4^] '/\ C37Y-&TY(K8E;FXR
M%?\ N@=3]>17/Z-X&DU6T6_U*[D5YQO51R2#W)J;XDV\F^QN@"8QN0^@/!'Y
M\_E76^']1M]0T6UD@=3MC5'7/*L!@B@#S_5]'U#P9=PWEE=NT#G&[IS_ '6'
MO7H>FWD.NZ)'.4_=W$95U_0C^=<U\1-1MQI<=@'5IWD#[1SM SR?SK6\%6TM
MKX7MEF!5F+. ?0DD4 <AX?E?PUXREL)FQ%*WEGT]5-=AXPU3^S/#\Q4XEG'E
M)^/7],U@?$/3"IMM6A&&4B.0C\U/\ZQ-3U.;Q;J6FV:!AA51_=C]YOPYH Z;
MX>Z5]FTR2_D7]Y<'"Y_NCO\ GG\JS_B9_K++_=:N]M;=+2UBMXP D:A0!7!?
M$S_667^ZU '<Z;_R"[3_ *XI_(5Y7XO,B^+KEHBP=2K*5Z@CG->J:;_R"[3_
M *XI_(5Y]>@-\34! (+@$'OP: .H\)^(EUO3_+F8"\A&'']X?WA7)^#_ /D=
M;CZ/_.G^(=+N?"NM1ZMIN1;NV<#HI/53[&H/ \OG>+7EQC>C-C\: .[\2ZQ_
M8NC2W*#,I^2,?[1[_A7#:+X7O?%"OJ-_>NB,V Q^9F_^M71_$.UDFT*.5 2(
M9,L!Z'BI_ VHV]UX?BMU91-;_*Z9Y^M &,?AZ]M>P26NJ$('R['Y64>V.]=X
M8P]N8MY(*[=V<GI7GOC#1VL//U+^UG#RN/+MPQ&?7'/:M_P$[R>&E:1V=O.?
MECD]J ,75? 5I8:9<W:WDS-%&7"E1@XK'\)^&H/$,=TTT\D1A*@;1G.<_P"%
M>B^(_P#D7-0_ZX-_*N5^&?\ J=1^L?\ [-0!U6A:)%H5FUM%*TBLV[+#%<-K
M&HW_ (LU\Z58N4M58C&< XZLU>F,-RE<D9&,BO+/#%S'HOC":*^_=;B\>YN,
M$G(S0!KR?#5/LQ\O47,X'\2?*3Z56\)ZU>Z9K7]AZ@S,I;RT#')1NP'L:]#:
M6-(S(SJ$ R6)X KRT2_VU\0EFL@3'YX;>!_"HP6H [CQC_R*E_\ [J_^A"O.
MO#&O2Z%?K(VXV<IVRKV^H]Q7HOC'_D5+_P#W5_\ 0A7*^&=#BUWP;<P-A9EN
M6:*3'W3M7]* -+XARQS^'+.6)P\;W"E6'0C:U;7A#_D5+#_</_H1KRZ\O+V#
M3CH=VI @GW@-U7 (Q].:]1\(?\BI8?[A_P#0C0!MT444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%0W5S%9VLMS,VV.)2S&LZ.]U*?3#?101+N7?' P)8KVR<]3].]
M &O159;M$M8I;ETB+@9R<<XZ4KWUK&B.]Q&JO]TENM %BBJMU>10Q38GB61$
MW?O#P/0GVI(;U$MK8W<T"S3*,;&^5B?[M %NBH8+NWNE8P3)($.&*G.#4+ZK
M9)(J>>K,QQA3G'N?:@"Y16=I>L6^J"7R\*T<C)MW9) QS^M6X[NWEE,23(T@
MS\H//% $U%57U*RC\S?=1+Y9 ?+?=)Z9JRK!E#*00>010 M%95QKD<-Q-$D+
M2>0RK)@X(W=,#O6K0 45F/?7/]LO8+Y0'DB57*GN2,'GVJ/3M>ANK666Z"VQ
MBF,)+-\K,/0T :]%0"\MC<"W$Z&8KN"9Y(]:8NHV<C*D=U$7<E5&[.6':@"U
M161%J%PNE7<TLMNLT;LB.^53/;//2KJWL48ACN9X5GD7.T'&[UQ0!:HJ&&[M
M[F(RPS))&"064Y J(:G:-<) DHD=CC"<[?KZ4 6Z*S=3OI[.>TCA$9^T2>7E
MP?E]^M7V\SRCM*^9C@D<9H ?16=HU_-J-K)-*J+ME>,!0?X21G]*2[OKB#5;
M2T01E;E7(8@Y4KCWYZT :5%9NG:H;N\N[.6/9-:L Q!RK ]"/3Z5I4 %%%%
M!1110 4444 %%%% !69K6AVFNV@@N00R\I(O536G10!YRW@#6("8[34HA"Q[
MLR_F *Z#PSX270I6N9KAI;EA@[20H']:Z:B@"MJ%A;ZG926ETF^)QR.X]Q7"
M3_#_ %&VG9M-U%%C/3>2K?H*]$HH X?2?A^(KD7&JW*W# Y")G!/N37;@!0
M  !P *6B@"GJFGQZIIL]G)]V5<9]#ZUSOACP:^B:@UY<SQS.$VQA ?E)ZGGV
MKKJ* "N8\6>&)_$+6YAGCB\H$'?GG/TKIZ* (;6$V]I#"2"8T521WP,5S4_A
M2XE\6KK N(A$&#;.<]*ZNB@""\LX+^TDMKA \4@PP-<MX?\ !LVB:TUX;J.2
M':550#NP?6NPHH 9-#'<0O#*@>-U*LIZ$&N$O_A[,ER9M(O1$IY"2$@K]"*[
MZB@#@+/X>W$TXEU:^$@Q]V,DD_B:ZCPYI$FB:5]CDD60B1F#+Z&M>B@"IJEH
MU_I=S:(P5I8R@8]!FL?PGX<G\/)=+-/'+YQ4C9GC&?7ZUT=% !7-^(O"-MKC
M?:$?R+L#&\#AOK_C7244 >;_ /" ZVX$,FHP>0.V]B/RQ76^'_#5IH$3&,F2
MX<8>5AR?8>E;=% &?KFGOJNC7%E&ZH\H #-T&"#_ $JGX6T.70-,DM9I4E9Y
M3)E,XP0!_2MRB@#F?%'A)-=9+B"1(;I>&9APR^]:VB:>^EZ-;64CJ[Q*067H
M>2?ZUH44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% %#6[)]1T6[M(SAY(\+]>O]
M*J:;K,"Z=!%,LL=S&@C>$QG=N QZ8Q[UM4FQ=V[:-WKCF@#%F:6+7[6[N8W$
M!MF3Y06".2IYQ[ \U1.ESW6CZCL5D)N#<6888(( (X[98'\ZZFB@##MF,^EW
M>I30/%+<P[=A4EL $#CKWJC=XDT[P\/*D8))%O'E-\N ,Y&.*ZJB@#G(,#7=
M;79*J2PI@A" Q ;.#TSR*IZ+<6LUUIIFE:*6VB,40:)U\S(QR2 ,_0]:ZN:%
M9X7B?.UA@X.#54Z7&[0&:6680'<BOC (Z'@"@#(TV*>/3]3L5#QW33R,GRD
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
MK\K==%@99#'YB?W=W;_ZU=*UO"\8C>&-D7HI4$#\*'@BDC\MXD9/[K*"/RH
MYLSFX\/1FWN7MPLQ5OM%P?GP3D"0=O0U#>W@?0;0QRS1+]N2)VEN.HP<_O,_
M=]ZZDV\#1"(PQF,=$*C'Y4-;0-"(6@C,0Z(4&!^% '.W,\=MH7F072C%U#O=
M;GS H\Q<Y;MQ6EJES'=Z5*;+4(4.0#(LO ]BPZ?6KXL[58FB6VA$;<LH08/U
M%"VELD;1I;Q*C=5"  _A0!G>'YDEM953S<H^"6F\U3_NMZ5KTR.*.%-D4:HH
M_A48%/H Y?47MGUN]2[U"2V6.%6C"3E#GV'>I(+VY6#1KJ]D:-#YBRLWR@]D
M+?48-;TEK;S.'EMXG<=&9 34CQ1R)LD163^ZPR* .4O[N5M&U>X2X<1_:56.
M0/@8W@'!]/>I]*U!+6XU R3%K:&(2C$_G(!W^;L>.E=$8(3#Y)B0Q?W-HQ^5
M(EK;QQM&D$2HW550 '\* .;T+4+I=2*7OGJ+P;U$HPJ./X5^HY_"M7P]*\VD
MAY'9V\^89)SP)& K29%8J64$J<C(Z&E5%1=J*%&<X Q0 M<I%%<7FO:B-LTL
M<=PB@K<% @V@GCOZUU=-5$4L5506.6('7ZT <5J<TXU#4F!NML<B*DR3%4AS
MW89Z5JZ]=7#0V]A!)*9Y$\QY+<<@ <$>Q;'X5OF&(A@8T._[V5'S?6E$:*VX
M(H.,9 [>E ',W=[<:EHNG-;SO;7+W*1N1U5@#D'_ #WJ.+4KFX76S+YD,T%M
MAH\\(X7DK[9Z&NI\J/\ YYI][=]WOZ_6@Q1DL3&I+C#''4>] '.Z-=3SW;_V
M@SQ7(@4P0[LH4Q]X>K9Z^G%1>&8;F:V@NI4G8LA(E:X)#'']VNH\J/<K;%W*
M,*<<@>U"(L:A44*HZ # H YA+]I=-TZW2X<W?VU1(F?G"ASG(],52U":<7]^
MX-T-MPB).LV(XLG^(9Z?A79""%93*(D$AZN%&3^-*88B&!C0AOO J.?K0!A:
MG9![_3RUQ.#,VV3RY2JM@#H!6\B"-%0$D 8Y.3040[<JOR]..E.H **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@!"0H))  Y)-5%U2R>1(Q.
M-SG"<$;C[>M+J<:RZ;<1/,(5D0IYA/W<\#^=8$%U/97&GZ=K%BAPRI;7<)RI
M;H,CL: .JJ">\M[::"&60+).Q6,8/S&L3^T+W[#J[>>/,M)"(VV]AV-2O?3F
M]T,$H5N8RS@J"0=H.0>W6@#<#*6*A@6'49Z4M<]8^;%X@UIVF9E18F*XZC#<
M4S3M8OM0@M;V*&1EEF*O&$^14W$9SZCJ: .AEFB@7=+(D:YQEV &:=O4IOW#
M;C.[/&/6J>KQI)I-T'16 C8C(S@XK!O)Y%T#P] "1'<-;I(0>HPIQ^- '4I(
MDHS&ZN/53FF^?%YGE^:GF'^'<,_E6'.6MO%MI%!\L5Q;N)$7@?*1@_J:9=Z8
MJ0V^GVKO).DXF:X<_-&N[<<GZ9&* .A>2., R.J@]-QQ3@01D<BL:W?[5XBO
MXI@&6&&,(IZ<[LG\<#\J=X?F=[>ZB8ED@NI(XR?[H8X'X=* ->BBB@ HHHH
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
M0N8=7OMMS?*8C&L(B53$"<\.2.] '9T5S^O:C/;65M;+<+;WDX!:0<A,#)_
M]*CN]3NK_0].N-/E\JXFN%0Y'?#$J?KB@#I**Y>#7;B9M4G1&$EM;9-NP^Y(
M!R/IFKVFPS"&.Z?59KAI8BQC8KMSCM@9&* -JBN9BN-1N-"LY8IG+-(WFE&4
M2,HSC;D$9Z=J=-J,D]CIL5M=31K<RF.2X=0'7';I@$_TH Z2BL&_DN-,TPI#
M?R3,\R1^=+M)B#$#L *6UDGLM=BL/MLMY#-"TC&7!:,CW '!_I0!NT45F:T;
MP6\?V-RIWY<(P#E>^W((S^% &G17+WM[+/I5@+:YNR9+DQ.PVI*<*V1TQU'I
M4TLMU9:/"BSW"//<+&TUPRLT0)QG@ 4 =%17/++=6>HW%BEY+=1FT>96DP6C
M88 &0!US^E$=_,]GHI6<F29U63'5L=<T =#167H]S),VH"67=LO)$0$]%&,"
MM2@ HJGJIN1ILWV-U6?'REB!W]3WK#?4)H]%NC'/=M<P3HKK.%WKDC@$  @@
M^E '445B6FH7,VL%)XI((UM]VQSUYZU1TK7C<:V1)<AH+HL(8\?<*].?<#/U
M- '4T5QUQK%]9Q:H\TI-N9FB@D YB<!>#['/Z5=N+FZNM0CLOM,UO&MH)LPX
MWRMQP,@B@#I**Y>;59_[/TN6W>>0M<B-PX >3'4&K-EJTJOK%Q=J\:6Y4K$Y
M^[\O3\30!OT5S7A[6)+F::VN+@2R.OGQG&-H/\'X8_6M/09Y;G1+669R\C("
MS'O0!I445RM_?:A%+=:9!,3=>=YT;'M%@L1^& /QH ZJBN?M-9\ZWO=6=F^R
MQ1JJ1^K!03CWR2/PJ/P]JLUP+FUGN5FG5?-20C P>WX<?G0!TE%<]IUW<QW#
MP7L]P;AXV9 =IB.,\J0!^1JE9:O?RV&BB1)5\VX57G)&)!AN/T_2@#KJ*YF_
MO+P6&H^3<&.5;N..-\9V@LH_K4EEJUS/J9@F5HYX+=C+#V+#&"/8T =%17*6
M6H2A;"_N;R\?[4P#QH%\I"3@(>,C!/K5DV<W_"2"'^T[WRO+\W9N7&<]/N]*
M .BHKEY+BZNDU.\.HR6K6CNL<*[=N%S@L",G./UI;C4]2^TZ;/ I.ZW,LUO_
M 'QQG'OZ4 =/165H%]_:%G/<"0R1M<R",GLN>!6K0 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% #)65
M(G9V"J!R2<"N,M$4>%A<13%[B*21TMRV]7.\X&RNU9592K $'J"*8L$*$%8D
M4CT4"@# 1UDGU8:B@#E1Y:N/X<'&WU/TK-*7+VL:RB*X<6NV:UN,ARN205/]
M[&.*[-HT<@LBL1T)&<4&.-F#%%+#H2.: , E8=2U+8@CN9K>-H05Y+!6SCWY
M%4;I ^BZ4;53_:2S1DX'SALC?N]NN:ZTHA<.54L.AQR*!&@?>$4-ZXYH X@V
MUHVCZ\QCB+QW3&,\?+TY7TKK-/O(9[>",3*\PA5V .3TZU9\B'!'E1X;J-HY
MID=I%%<-,JX8KM' &!Z#% &%JSQSM+=VK++<6$BRA4.21R"M1,R)K6D7,KJK
MSR2RN6."%,;;0?3 P*Z988D)*QHI/4A0,TC01.<O$C'U*@T <S=6TFN'4ITO
M8H[;;Y ! ;Y1SNSVR3^E:/AC4/[0T.W9V!FC7RY!GG(XS^-:JP1*I58D"GJ
MHP:5(HXL^7&J9Z[1B@#G;&:+3];UL7DJQ&5UE0R'&]=N./7I4.B3)I>@VZW/
MEQW4A>2%9N-JD]_3K73R6\,Q!EAC<CH64'%$D$4I'F1(^.FY0<4 <U-)9Q^'
M-5CAN!-(RLTLN>'D(Z#\,5)JD\)TK2\2QG$T?\0]*Z 6\ 38(8]O7&T8H-M
M0 88\#H-HXH QXIXK/Q'=R7,J1QSPHT4CL I SD _K^-5;"#5Y+26;3IX8$F
MN990)DSE2>"*Z.2WAE4+)#&X7H&4'%/      '0"@#$U"[C5?L;74$%W)&%F
MG.!M&.<>I]*P_*LAJNF1K,\.EQPR)%*7VAGXS\W;/]*[1[>"1MSPQLWJR@TC
M6T#QB-X8VC'12H('X4 <,CW/VJVGDDDFTZUU$JDSG=A",9SW />KFK1/J>LW
MLEBPE2.PV,\9R-Q8'&?7 -=?Y,0B\KRT\O&-FT8_*B.&*%2L4:(#U"J!0!SM
MW=0ZC#I$-I(KRF6.0JIR45<%L^G0CFNEJ-+>&)R\<,:,W4JH!-24 %%%% !1
M110 4444 %%%% !1110 4444 %1B"(7#7 1?-90A?') .0/UJ2B@"-8(DFDE
M5%$D@ =L<MCI5:72+":%(I+6-HXV+(I'"D]<5=HH J'3+)K5;5K:)H5.0C+D
M U-;VL%I$(K>%(H^NU%P*EHH C6"))9)5C422 !VQR0.G\S5>72;&>%(I+:-
MHT8LJD< GKC\ZN44 5UL+5(H8EA0)"V^,8^Z?4?G1=6%I?!1=6\<NW[N]0<5
M8HH 9%%'!$L42*D:C"JHP!3Z** *DNF6,]P+B6TA>8?QL@)J9;:%&E98U!E_
MUAQ][ZU+10! EE;1-$R0H#$"$('W0>N*=#;0VYD,,2IYC%VVC&3ZU+10!&D$
M4<LDB(%>0@N0.6.,?TJ-K&U?S]T"'S\>;D?>QTS5BB@"%+6&.42+&H<((PV.
M0H[4T65L#Q"@_>^=T_C_ +WUJQ10!$MM D\DZQ()9  [ <MCUJ&'2["WF,L-
MI#'(01N5 #@]:MT4 5'TRQDMT@>UB:)"2JE00I/I3VL;1K06K6T1MQTB*C:/
MPJQ10!6BT^SAMFMX[:)87^\@48;Z^M%KI]I9;OLMM%$6ZE% S5FB@ J"ZL[:
M]C"7,$<JCD!US@^U3T4 5)=,LIK9+9[6(PQG*)MX4^U+%IUG#:O;);Q^0_WH
MRN0?PJU10!7M;&ULE86UO'$&^]L7&?K38M-LH+@W$5I"DQZNJ '\ZM44 4?[
M'T_[4;G[+'YQ;>7QR3ZU>HHH CG@BN8FBGC62-NJN,@U"FFV<=N8$MHEB+!B
MH4 $CO5JB@"%[6"1F9HU+,FPG'\/I2-9V[111F%-D)!C&/NXZ8J>B@"NUC:M
M#+"T"&.9BTBD<,?4_D*;<Z;97B(EQ;12JGW=Z@[?I5JB@"N+"T6.&-;>-4A;
M=&H4 *?44/8VLGF[X4/FLK/D?>(Z9JQ10!$]O#)-',T:F2,$(V.0#UI8((K:
M%8H4"1J,!0.!4E% !41MH3<BX,2F8*4WXYVGM^E2T4 5Q86JVZP"!!$K[P@'
M&[.<_G3WMH9)DF:-3(BE58CD ]1^E2T4 5;?3+&U=W@M88V<8)1 .*<MC;+#
M#$L*".!@T:XX4C/(_,U8HH @:RMG5U:%"'<.PQU8=#^E.^S0_:/M'E+YVW9O
MQSCTJ6B@"DND:<MU]I6R@$V=V_8,Y]?K5GR(OM'G[!YNW;NQSCTJ2B@"I-I=
MA<3B>:TADE&/F9 3QTJ<V\1F68QKYBJ55L<@>E244 106\-LK+#&L:LQ<A1C
M)/4U+110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% %:_MY+NS>"*=X'8K^\0X8 $$X/TR*YJ"WN;S7
M-:L$U"]184C\D^>WR$CKUYKKJQ-.T^[M_$.H7TL:"&Z"A</DC:,>E &S'N\M
M=^-V.<>M#R)$NZ1U1?5CBG4C(KC#*&'H1F@"G9WT>HV@>"14=@<#()7WQ570
M;NZN5O$NIA*T-PT:L$"Y ]A5NRLDT^T6- &91U"X)JGH=M<VLE[]HAV":<RH
M=V>#0 FJ:W':7L=BC[974R.^PML7V ')I]S<O-HDEW87XRD;OYFP-N(!X(/3
MFJUU8W-KXF_M:*W^T1R0>2R@X9"#G(]J99Z7=6>AZA%Y8::\>5UB!X3=G S^
M- %DMJM]IEB]I<)#)( TTI0-Q["GZ6-0%[.MS?BZBC 7B$)AOJ.M+;+>V^@+
M%' !=HFQ5+<9]<U=L;46=G'#NW,!EW/\3'J?Q- &=?ZW'!J!LED\LH@>1PA<
M@'H H!ST/TI]SJ6VVLEM)1*]Y($CD/(Z9)Q] >*BFM9['6;B^AM?M"7,2H<'
MYD89_0Y_2JT>CW=OIEFZJK75M<-<>4&XPV<J#[!C^5 &C#>3Q:J]A,PEW1"6
M)\8)Z@@C\OSJHE_J*S62R;//ED(GM5P3&N"<Y'X=:GBM[FYU&34&B\AEA\J%
M'Y.>22?T_*J<EOJ=V;)&MDBNHW5I[I3@8'4#US0!J:S?2:=I<US&A9D'IG'O
M5.QU.:XNKD0S)>VR0^8LB #YO[O%6]:MKBZL/+M\$[U+H3C>@ZK^-9UII\YU
M>>\M[;[#$UNT97/WW.,-CH,4 16>O3W0M#'*DEQ)-LFM-F&C7/)]>!5N/4+F
M_O=2CMI1$EF=@^4'>V#G/ITJF--N99M/5;(03VTH>2YW?>&<GZYJ:.SO-+U+
M4F@MO/BO3YBL&QL?!R#[<]: %MM=DO[;3TA"QW%T[JYQD)L^\?TXJ]9WDW]J
M7%A<,'9$61) ,9!Z@CV_K6=%HD^G6NG30*);BU=WD3.-X?[P'TSQ5ZPMIY-3
MN-1N(_*WHL<<9.2%'4GZ\4 :M%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
;%%%% !1110 4444 %%%% !1110 4444 ?__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>7
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.26.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Submission<br></strong></div></th>
<th class="th"><div>Jun. 08, 2026</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_SubmissionLineItems', window );"><strong>Submission [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Central Index Key</a></td>
<td class="text">0001123494<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Registrant Name</a></td>
<td class="text">HARVARD BIOSCIENCE INC<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FormTp', window );">Form Type</a></td>
<td class="text">S-8<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_SubmissnTp', window );">Submission Type</a></td>
<td class="text">S-8<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeeExhibitTp', window );">Fee Exhibit Type</a></td>
<td class="text">EX-FILING FEES<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_FeeExhibitTp">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_FeeExhibitTp</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:feeExhibitTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_FormTp">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_FormTp</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_SubmissionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_SubmissionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_SubmissnTp">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_SubmissnTp</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>8
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.26.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Offerings<br></strong></div></th>
<th class="th">
<div>Jun. 08, 2026 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingAxis=1', window );">Offering: 1</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingTable', window );"><strong>Offering:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_PrevslyPdFlg', window );">Fee Previously Paid</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeesOthrRuleFlg', window );">Other Rule</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingSctyTp', window );">Security Type</a></td>
<td class="text">Equity<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingSctyTitl', window );">Security Class Title</a></td>
<td class="text">Common Stock, $0.01 par value per share<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_AmtSctiesRegd', window );">Amount Registered | shares</a></td>
<td class="nump">400,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_MaxOfferingPricPerScty', window );">Proposed Maximum Offering Price per Unit</a></td>
<td class="nump">6.38<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_MaxAggtOfferingPric', window );">Maximum Aggregate Offering Price</a></td>
<td class="nump">$ 2,552,000.00<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeeRate', window );">Fee Rate</a></td>
<td class="nump">0.01381%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeeAmt', window );">Amount of Registration Fee</a></td>
<td class="nump">$ 352.43<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingNote', window );">Offering Note</a></td>
<td class="text">(1)	Pursuant to Rule 416 under the Securities Act of 1933, as amended (the "Securities Act"), this registration statement also covers such an indeterminate amount of shares of common stock, par value $0.01 per share ("Common Stock"), as may become issuable to prevent dilution resulting from stock splits, stock dividends and similar events.
(2)	The amount registered consists of up to 400,000 shares of Common Stock issuable pursuant to the Registrant's Employee Stock Purchase Plan, as amended.
(3)	The proposed maximum offering price per unit is estimated solely for the purpose of calculating the registration fee, based on the average of the high and low prices of the shares of Common Stock on the Nasdaq Capital Market on June 4, 2026 (such date being within five business days of the date that this registration statement was first filed with the Securities and Exchange Commission, in accordance with Rule 457(c) under the Securities Act).
<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingAxis=2', window );">Offering: 2</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingTable', window );"><strong>Offering:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_PrevslyPdFlg', window );">Fee Previously Paid</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeesOthrRuleFlg', window );">Other Rule</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingSctyTp', window );">Security Type</a></td>
<td class="text">Equity<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingSctyTitl', window );">Security Class Title</a></td>
<td class="text">Common Stock, $0.01 par value per share<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_AmtSctiesRegd', window );">Amount Registered | shares</a></td>
<td class="nump">120,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_MaxOfferingPricPerScty', window );">Proposed Maximum Offering Price per Unit</a></td>
<td class="nump">6.38<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_MaxAggtOfferingPric', window );">Maximum Aggregate Offering Price</a></td>
<td class="nump">$ 765,600.00<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeeRate', window );">Fee Rate</a></td>
<td class="nump">0.01381%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeeAmt', window );">Amount of Registration Fee</a></td>
<td class="nump">$ 105.73<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingNote', window );">Offering Note</a></td>
<td class="text">(1)	Pursuant to Rule 416 under the Securities Act of 1933, as amended (the "Securities Act"), this registration statement also covers such an indeterminate amount of shares of common stock, par value $0.01 per share ("Common Stock"), as may become issuable to prevent dilution resulting from stock splits, stock dividends and similar events.
(2)	The The amount registered consists of up to 120,000 shares of Common Stock issuable pursuant to the Amended and Restated 2021 Incentive Plan.
(3)	The proposed maximum offering price per unit is estimated solely for the purpose of calculating the registration fee, based on the average of the high and low prices of the shares of Common Stock on the Nasdaq Capital Market on June 4, 2026 (such date being within five business days of the date that this registration statement was first filed with the Securities and Exchange Commission, in accordance with Rule 457(c) under the Securities Act). <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_AmtSctiesRegd">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of securities being registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_AmtSctiesRegd</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegativeDecimal2ItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_FeeAmt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total amount of registration fee (amount due after offsets).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_FeeAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative1TMonetary2ItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_FeeRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The rate per dollar of fees that public companies and other issuers pay to register their securities with the Commission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_FeeRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_FeesOthrRuleFlg">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Checkbox indicating whether filer is using a rule other than 457(a), 457(o), or 457(f) to calculate the registration fee due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_FeesOthrRuleFlg</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_MaxAggtOfferingPric">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum aggregate offering price for the offering that is being registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_MaxAggtOfferingPric</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative100TMonetary2ItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_MaxOfferingPricPerScty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum offering price per share/unit being registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_MaxOfferingPricPerScty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegativeDecimal4lItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OfferingNote">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OfferingNote</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OfferingSctyTitl">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The title of the class of securities being registered (for each class being registered).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OfferingSctyTitl</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OfferingSctyTp">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Type of securities: "Asset-backed Securities", "ADRs/ADSs", "Debt", "Debt Convertible into Equity", "Equity", "Face Amount Certificates", "Limited Partnership Interests", "Mortgage Backed Securities", "Non-Convertible Debt", "Unallocated (Universal) Shelf", "Exchange Traded Vehicle Securities", "Other"</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OfferingSctyTp</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:securityTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OfferingTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OfferingTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_PrevslyPdFlg">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_PrevslyPdFlg</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OfferingAxis=1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OfferingAxis=1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OfferingAxis=2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OfferingAxis=2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>9
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.26.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fees Summary<br></strong></div></th>
<th class="th">
<div>Jun. 08, 2026 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_FeesSummaryLineItems', window );"><strong>Fees Summary [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_TtlOfferingAmt', window );">Total Offering</a></td>
<td class="nump">$ 3,317,600.00<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_TtlFeeAmt', window );">Total Fee Amount</a></td>
<td class="nump">458.16<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_TtlOffsetAmt', window );">Total Offset Amount</a></td>
<td class="nump">0.00<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_NetFeeAmt', window );">Net Fee</a></td>
<td class="nump">$ 458.16<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OfferingTableNa', window );">Offering Table N/A</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ffd_OffsetTableNa', window );">Offset Table N/A</a></td>
<td class="text">N/A<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_FeesSummaryLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_FeesSummaryLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_NetFeeAmt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_NetFeeAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OfferingTableNa">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OfferingTableNa</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:naItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_OffsetTableNa">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_OffsetTableNa</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:naItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_TtlFeeAmt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_TtlFeeAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative1TMonetary2ItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_TtlOfferingAmt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_TtlOfferingAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative1TMonetary2ItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ffd_TtlOffsetAmt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ffd_TtlOffsetAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ffd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>ffd:nonNegative1TMonetary2ItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>10
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
.report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

.report table.authRefData a {
	display: block;
	font-weight: bold;
}

.report table.authRefData p {
	margin-top: 0px;
}

.report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

.report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

.report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

.report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
.pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
.report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

.report hr {
	border: 1px solid #acf;
}

/* Top labels */
.report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

.report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

.report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

.report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

.report td.pl div.a {
	width: 200px;
}

.report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
.report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
.report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
.report .re, .report .reu {
	background-color: #def;
}

.report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
.report .ro, .report .rou {
	background-color: white;
}

.report .rou td {
	border-bottom: 1px solid black;
}

.report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
.report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
.report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

.report .nump {
	padding-left: 2em;
}

.report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
.report .text {
	text-align: left;
	white-space: normal;
}

.report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

.report .text .more {
	display: none;
}

.report .text .note {
	font-style: italic;
	font-weight: bold;
}

.report .text .small {
	width: 10em;
}

.report sup {
	font-style: italic;
}

.report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.26.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>3</ContextCount>
  <ElementCount>21</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>1</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>3</UnitCount>
  <MyReports>
    <Report instance="exh_107.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>995210 - Document - Submission</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ffd/role/document/submissionTable</Role>
      <ShortName>Submission</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="exh_107.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>995211 - Document - Offerings</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ffd/role/document/feesOfferingTable</Role>
      <ShortName>Offerings</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="exh_107.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>995215 - Document - Fees Summary</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ffd/role/document/feesSummaryTable</Role>
      <ShortName>Fees Summary</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="EX-FILING FEES" original="exh_107.htm">exh_107.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="3">http://xbrl.sec.gov/dei/2026</BaseTaxonomy>
    <BaseTaxonomy items="30">http://xbrl.sec.gov/ffd/2026</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>false</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>15
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "exh_107.htm": {
   "dts": {
    "inline": {
     "local": [
      "exh_107.htm"
     ]
    },
    "schema": {
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/lrr/arcrole/deprecated-2009-12-16.xsd",
      "https://www.xbrl.org/dtr/type/2024-01-31/types.xsd",
      "https://xbrl.sec.gov/dei/2026/dei-2026.xsd",
      "https://xbrl.sec.gov/ffd/2026/ffd-2026.xsd"
     ]
    }
   },
   "keyStandard": 21,
   "keyCustom": 0,
   "axisStandard": 1,
   "axisCustom": 0,
   "memberStandard": 1,
   "memberCustom": 0,
   "hidden": {
    "total": 9,
    "http://xbrl.sec.gov/ffd/2026": 7,
    "http://xbrl.sec.gov/dei/2026": 2
   },
   "contextCount": 3,
   "entityCount": 1,
   "segmentCount": 1,
   "elementCount": 107,
   "unitCount": 3,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/ffd/2026": 30,
    "http://xbrl.sec.gov/dei/2026": 3
   },
   "report": {
    "R1": {
     "role": "http://xbrl.sec.gov/ffd/role/document/submissionTable",
     "longName": "995210 - Document - Submission",
     "shortName": "Submission",
     "isDefault": "true",
     "groupType": "Fee_Exhibit",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": null,
     "uniqueAnchor": null
    },
    "R2": {
     "role": "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
     "longName": "995211 - Document - Offerings",
     "shortName": "Offerings",
     "isDefault": "false",
     "groupType": "Fee_Exhibit",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "2",
     "firstAnchor": {
      "contextRef": "offrl_1",
      "name": "ffd:FeesOthrRuleFlg",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "exh_107.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "offrl_1",
      "name": "ffd:FeesOthrRuleFlg",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "exh_107.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable",
     "longName": "995215 - Document - Fees Summary",
     "shortName": "Fees Summary",
     "isDefault": "false",
     "groupType": "Fee_Exhibit",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "3",
     "firstAnchor": {
      "contextRef": "rc",
      "name": "ffd:TtlOfferingAmt",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "exh_107.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "rc",
      "name": "ffd:TtlOfferingAmt",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "exh_107.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "ffd_AggtRedRpPricFsclYr": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "AggtRedRpPricFsclYr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Redeemed or Repurchased Price, Fiscal Year",
        "terseLabel": "Aggregate Redeemed or Repurchased, FY"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_AggtRedRpPricPrrFsclYr": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "AggtRedRpPricPrrFsclYr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Redeemed or Repurchased Price, Prior Fiscal Year",
        "terseLabel": "Aggregate Redeemed or Repurchased, Prior FY"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_AggtSalesPricFsclYr": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "AggtSalesPricFsclYr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Sales Price, Fiscal Year",
        "terseLabel": "Aggregate Sales Price"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_AmtRedCdts": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "AmtRedCdts",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amount of Redemption Credits",
        "terseLabel": "Redemption Credits"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_AmtSctiesRcvd": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "AmtSctiesRcvd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amount of Securities Received",
        "terseLabel": "Amount of Securities Received",
        "documentation": "Amount of securities to be received by the registrant (or cancelled upon issuance of securities to be registered on the form)"
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "ffd_AmtSctiesRegd": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "AmtSctiesRegd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amount of Securities Registered",
        "terseLabel": "Amount Registered",
        "documentation": "The amount of securities being registered."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_CeasedOprsDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CeasedOprsDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Ceased Operations Date",
        "terseLabel": "Ceased Operations Date"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_CfwdFormTp": {
     "xbrltype": "formTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CfwdFormTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carry Forward Form Type",
        "terseLabel": "Carry Forward Form Type",
        "documentation": "The Form Type of the prior shelf registration statement from which unsold securities are carried forward under 415(a)(6). This should be an EDGAR submission type (S-3, S-3/A, S-3ASR, etc.), which means there is a fixed set of possible responses. Note that while the XBRL response should be an EDGAR submission type, the human-readable Ex. 107 could include a simpler label (e.g., \"Form S-3\" in the human-readable and \"S-3ASR\" in the XBRL)."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_CfwdPrevslyPdFee": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CfwdPrevslyPdFee",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carry Forward Previously Paid Fee",
        "terseLabel": "Filing Fee Previously Paid in Connection with Unsold Securities to be Carried Forward",
        "documentation": "The fee previously paid in connection with the securities being brought forward from the prior shelf registration statement on which unsold securities are carried forward under 415(a)(6)."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_CfwdPrrFctvDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CfwdPrrFctvDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carry Forward Prior Effective Date",
        "terseLabel": "Carry Forward Initial Effective Date",
        "documentation": "The initial effective date of the prior shelf registration statement from which unsold securities are carried forward under 415(a)(6)."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_CfwdPrrFileNb": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CfwdPrrFileNb",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Carry Forward File Number",
        "terseLabel": "Carry Forward File Number",
        "documentation": "The EDGAR File Number of the prior shelf registration statement from which unsold securities are carried forward under 415(a)(6). If the prior registration statement has a Securities Act File Number and an Investment Company Act File Number, the Securities Act File Number should be used."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_CmbndPrspctsItemAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CmbndPrspctsItemAxis",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined Prospectus Item [Axis]",
        "terseLabel": "Combined Prospectus",
        "documentation": "A sequence number (1, 2, 3...) used to distinguish different references to earlier prospectuses on a single fee bearing submission."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_CmbndPrspctsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CmbndPrspctsLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined Prospectus [Line Items]",
        "terseLabel": "Combined Prospectus:"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_CmbndPrspctsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CmbndPrspctsTable",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined Prospectus [Table]",
        "terseLabel": "Combined Prospectus Table"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_CombinedProspectusTableNa": {
     "xbrltype": "naItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CombinedProspectusTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Combined Prospectus Table [N/A]",
        "terseLabel": "Combined Prospectus Table N/A"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_CshPdByRegistrantInTx": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CshPdByRegistrantInTx",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Paid by Registrant in Transaction",
        "terseLabel": "Cash Consideration Paid",
        "documentation": "Amount of cash consideration paid by registrant in connection with the exchange or other transaction being registered (in a 457(f) calculation)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "ffd_CshRcvdByRegistrantInTx": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "CshRcvdByRegistrantInTx",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Received by Registrant in Transaction",
        "terseLabel": "Cash Consideration Received",
        "documentation": "Amount of cash consideration received by registrant in connection with the exchange or other transaction being registered (in a 457(f) calculation)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2026",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "terseLabel": "Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2026",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "terseLabel": "Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "ffd_FeeAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FeeAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Amount",
        "terseLabel": "Amount of Registration Fee",
        "documentation": "Total amount of registration fee (amount due after offsets)."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeeExhibitTp": {
     "xbrltype": "feeExhibitTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FeeExhibitTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Exhibit Type",
        "terseLabel": "Fee Exhibit Type"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_FeeIntrstAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FeeIntrstAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Interest Amount",
        "terseLabel": "Interest Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeeNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FeeNote",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Note",
        "terseLabel": "Fee Note"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeeNoteMaxAggtOfferingPric": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FeeNoteMaxAggtOfferingPric",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Note Maximum Aggregate Offering Price",
        "terseLabel": "Fee Note MAOP"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeeRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FeeRate",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Rate",
        "terseLabel": "Fee Rate",
        "documentation": "The rate per dollar of fees that public companies and other issuers pay to register their securities with the Commission."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeesOthrRuleFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FeesOthrRuleFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fees, Other Rule [Flag]",
        "terseLabel": "Other Rule",
        "documentation": "Checkbox indicating whether filer is using a rule other than 457(a), 457(o), or 457(f) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FeesSummaryLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FeesSummaryLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fees Summary [Line Items]",
        "terseLabel": "Fees Summary:"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FnlPrspctsFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FnlPrspctsFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Final Prospectus [Flag]",
        "terseLabel": "Final Prospectus"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_FormTp": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "FormTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Form Type",
        "terseLabel": "Form Type"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_GnlInstrIIhiFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "GnlInstrIIhiFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "General Instruction II.H,I [Flag]",
        "terseLabel": "General Instruction II.H,I"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrCity": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "IssrBizAdrCity",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, City",
        "terseLabel": "City"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrStatOrCtryCd": {
     "xbrltype": "stateOrCountryCodeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "IssrBizAdrStatOrCtryCd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, State or Country Code",
        "terseLabel": "State or Country Code"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrStrt1": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "IssrBizAdrStrt1",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, Street 1",
        "terseLabel": "Street 1"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrStrt2": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "IssrBizAdrStrt2",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, Street 2",
        "terseLabel": "Street 2"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrBizAdrZipCd": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "IssrBizAdrZipCd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Business Address, Zip Code",
        "terseLabel": "Zip Code"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_IssrNm": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "IssrNm",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuer Name",
        "terseLabel": "Issuer Name"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_MaxAggtOfferingPric": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "MaxAggtOfferingPric",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum Aggregate Offering Price",
        "terseLabel": "Maximum Aggregate Offering Price",
        "documentation": "The maximum aggregate offering price for the offering that is being registered."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_MaxOfferingPricPerScty": {
     "xbrltype": "nonNegativeDecimal4lItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "MaxOfferingPricPerScty",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum Offering Price per Security",
        "terseLabel": "Proposed Maximum Offering Price per Unit",
        "documentation": "The maximum offering price per share/unit being registered."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NetFeeAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "NetFeeAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Fee Amount",
        "terseLabel": "Net Fee"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NetSalesAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "NetSalesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Sales Amount",
        "terseLabel": "Net Sales"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NrrtvDsclsr": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "NrrtvDsclsr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Narrative Disclosure",
        "terseLabel": "Narrative Disclosure"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NrrtvMaxAggtAmt": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "NrrtvMaxAggtAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Narrative Disclosure, Maximum Aggregate Offering Amount",
        "terseLabel": "Narrative - Max Aggregate Offering Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_NrrtvMaxAggtOfferingPric": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "NrrtvMaxAggtOfferingPric",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Narrative Disclosure, Maximum Aggregate Offering Price",
        "terseLabel": "Narrative - Max Aggregate Offering Price"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OfferingAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OfferingAxis",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering [Axis]",
        "terseLabel": "Offering",
        "documentation": "A sequence number (1, 2, 3...) used to distinguish different security offerings on a single fee bearing submission."
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OfferingLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OfferingLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering [Line Items]",
        "terseLabel": "Offering:"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OfferingNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OfferingNote",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering Note",
        "terseLabel": "Offering Note"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OfferingSctyTitl": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OfferingSctyTitl",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering Security Title",
        "terseLabel": "Security Class Title",
        "documentation": "The title of the class of securities being registered (for each class being registered)."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OfferingSctyTp": {
     "xbrltype": "securityTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OfferingSctyTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering Security Type",
        "terseLabel": "Security Type",
        "documentation": "Type of securities: \"Asset-backed Securities\", \"ADRs/ADSs\", \"Debt\", \"Debt Convertible into Equity\", \"Equity\", \"Face Amount Certificates\", \"Limited Partnership Interests\", \"Mortgage Backed Securities\", \"Non-Convertible Debt\", \"Unallocated (Universal) Shelf\", \"Exchange Traded Vehicle Securities\", \"Other\""
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OfferingTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OfferingTable",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering [Table]",
        "terseLabel": "Offering:"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OfferingTableNa": {
     "xbrltype": "naItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OfferingTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering Table [N/A]",
        "terseLabel": "Offering Table N/A"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OffsetAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetAxis",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset [Axis]",
        "terseLabel": "Offset",
        "documentation": "A sequence number (1, 2, 3...) used to distinguish different offsets as applied to a fee bearing submission."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetClmInitlFilgDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetClmInitlFilgDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Claim Initial Filing Date",
        "terseLabel": "Initial Filing Date",
        "documentation": "The initial filing date of the earlier registration statement with which the earlier (offsetting) fee was paid for a claimed offset. If the offset fee was paid with an amendment, do not provide the amendment date under this element; instead, provide the date of the initial filing (i.e. the \"parent\" filing) ."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetClmdAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetClmdAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Claimed Amount",
        "terseLabel": "Fee Offset Claimed",
        "documentation": "The amount of offsetting fees being claimed."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetClmdInd": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetClmdInd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Claimed Indicator",
        "terseLabel": "Offset Claimed"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetExpltnForClmdAmt": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetExpltnForClmdAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Explanation for Claimed Amount",
        "terseLabel": "Explanation for Claimed Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetLineItems",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Offset:",
        "label": "Offset [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetNote",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Note",
        "terseLabel": "Offset Note"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetPrrFeeAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetPrrFeeAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Fee Amount",
        "terseLabel": "Fee Paid with Fee Offset Source",
        "documentation": "The fee previously paid from which an offset is being derived."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrFileNb": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetPrrFileNb",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior File Number",
        "terseLabel": "File Number",
        "documentation": "The EDGAR File Number of the earlier registration statement with which the earlier (offsetting) fee was paid. If the offset filing for the offset has a Securities Act File Number and an Investment Company Act File Number, the Securities Act File Number should be used."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrFilerNm": {
     "xbrltype": "filerNameItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetPrrFilerNm",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Filer Name",
        "terseLabel": "Registrant or Filer Name",
        "documentation": "The name of the registrant that filed the earlier registration statement with which the earlier (offsetting) fee was paid."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrFormTp": {
     "xbrltype": "formTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetPrrFormTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Form Type",
        "terseLabel": "Form or Filing Type",
        "documentation": "The Form Type of the offset filing."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrNbOfUnsoldScties": {
     "xbrltype": "nonNegativeDecimal8ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetPrrNbOfUnsoldScties",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Unsold Number of Securities",
        "terseLabel": "Unsold Securities Associated with Fee Offset Claimed",
        "documentation": "The number of unsold securities registered on the prior registration statement that are associated with the claimed offset."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrSctyTitl": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetPrrSctyTitl",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Security Title",
        "terseLabel": "Security Title Associated with Fee Offset Claimed",
        "documentation": "The title of the class of securities from which offset fees were derived."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrSctyTp": {
     "xbrltype": "securityTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetPrrSctyTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Security Type",
        "terseLabel": "Security Type Associated with Fee Offset Claimed",
        "documentation": "Type of securities: \"Asset-backed Securities\", \"ADRs/ADSs\", \"Debt\", \"Debt Convertible into Equity\", \"Equity\", \"Face Amount Certificates\", \"Limited Partnership Interests\", \"Mortgage Backed Securities\", \"Non-Convertible Debt\", \"Unallocated (Universal) Shelf\", \"Exchange Traded Vehicle Securities\", \"Other\""
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetPrrUnsoldOfferingAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetPrrUnsoldOfferingAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Prior Unsold Offering Amount",
        "terseLabel": "Unsold Aggregate Offering Amount Associated with Fee Offset Claimed",
        "documentation": "The aggregate offering amount of unsold securities registered on the prior registration statement that are associated with the claimed offset."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetSrcFilgDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetSrcFilgDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Source Filing Date",
        "terseLabel": "Filing Date",
        "documentation": "The filing date of the earlier registration statement with which the earlier (offsetting) fee was paid in an offset."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r8"
     ]
    },
    "ffd_OffsetTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetTable",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Offset Payment:",
        "label": "Offset [Table]"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_OffsetTableNa": {
     "xbrltype": "naItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "OffsetTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Offset Table [N/A]",
        "terseLabel": "Offset Table N/A"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_PrevslyPdFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "PrevslyPdFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable",
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fee Previously Paid [Flag]",
        "terseLabel": "Fee Previously Paid"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_RegnFileNb": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "RegnFileNb",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Registration File Number",
        "terseLabel": "Registration File Number"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_RptgFsclYrEndDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "RptgFsclYrEndDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reporting Fiscal Year End Date",
        "terseLabel": "Reporting FY End Date"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_Rule011Flg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule011Flg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 0-11 [Flag]",
        "terseLabel": "Rule 0-11"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_Rule011a2OffsetFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule011a2OffsetFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 0-11(a)(2) Offset",
        "label": "Rule 0-11(a)(2) Offset [Flag]"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_Rule415a6Flg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule415a6Flg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 415(a)(6) [Flag]",
        "terseLabel": "Rule 415(a)(6)",
        "documentation": "Checkbox indicating whether filer is claiming a 415(a)(6) carryforward."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "ffd_Rule429AggtOfferingAmt": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429AggtOfferingAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Aggregate Offering Amount",
        "terseLabel": "Maximum Aggregate Offering Price of Securities Previously Registered",
        "documentation": "The maximum aggregate offering amount of unsold securities registered on the prior registration statement that are carried forward under Rule 429. Only applicable if 457(o) was used in the fee calculation for the prior registration statement."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429CmbndPrspctsFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429CmbndPrspctsFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Combined Prospectus [Flag]",
        "terseLabel": "Rule 429",
        "documentation": "Checkbox indicating whether filer is using a combined prospectus under Rule 429."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429EarlierFileNb": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429EarlierFileNb",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Earlier File Number",
        "terseLabel": "File Number",
        "documentation": "The Securities Act File Number of the earlier effective registration statement(s) from which securities may be offered and sold using the combined prospectus pursuant to Rule 429."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429EarlierFormTp": {
     "xbrltype": "formTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429EarlierFormTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Earlier Form Type",
        "terseLabel": "Form Type",
        "documentation": "The Form Type of the earlier registration statement from which unsold securities are carried forward under Rule 429. This should be an EDGAR submission type (S-3, S-3/A, S-3ASR, etc.), which means there is a fixed set of possible responses. Note that while the XBRL response should be an EDGAR submission type, the human-readable Ex. 107 could include a simpler label (e.g., \"Form S-3\" in the human-readable and \"S-3ASR\" in the XBRL)."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429InitlFctvDt": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429InitlFctvDt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Initial Effective Date",
        "terseLabel": "Initial Effective Date",
        "documentation": "The filing date of the earlier registration statement from which unsold securities are carried forward under Rule 429."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429NbOfUnsoldScties": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429NbOfUnsoldScties",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Number Of Unsold Securities",
        "terseLabel": "Amount of Securities Previously Registered",
        "documentation": "The number of securities registered on the prior registration statement that are carried forward under Rule 429."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "ffd_Rule429PrspctsNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429PrspctsNote",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Prospectus Note",
        "terseLabel": "Combined Prospectus Note"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Rule429SctyTitl": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429SctyTitl",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Security Title",
        "terseLabel": "Security Class Title"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Rule429SctyTp": {
     "xbrltype": "securityTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule429SctyTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesByCmbndPrspctsTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 429 Security Type",
        "terseLabel": "Security Type"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Rule457aFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule457aFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(a) [Flag]",
        "terseLabel": "Rule 457(a)",
        "documentation": "Checkbox indicating whether filer is using Rule 457(a) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "ffd_Rule457bOffsetFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule457bOffsetFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(b) Offset [Flag]",
        "terseLabel": "Rule 457(b) Offset",
        "documentation": "Checkbox indicating whether filer is claiming an offset under Rule 457(b) or 0-11(a)(2)."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "ffd_Rule457fFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule457fFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(f) [Flag]",
        "terseLabel": "Rule 457(f)",
        "documentation": "Checkbox indicating whether filer is using Rule 457(f) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "ffd_Rule457oFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule457oFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(o) [Flag]",
        "terseLabel": "Rule 457(o)",
        "documentation": "Checkbox indicating whether filer is using Rule 457(o) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "ffd_Rule457pOffsetFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule457pOffsetFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(p) Offset [Flag]",
        "terseLabel": "Rule 457(p) Offset",
        "documentation": "Checkbox indicating whether filer is claiming an offset under Rule 457(p)."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "ffd_Rule457rFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule457rFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(r) [Flag]",
        "terseLabel": "Rule 457(r)"
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "ffd_Rule457sFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule457sFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(s) Flag",
        "terseLabel": "Rule 457(s)"
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "ffd_Rule457uFlg": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Rule457uFlg",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 457(u) [Flag]",
        "terseLabel": "Rule 457(u)",
        "documentation": "Checkbox indicating whether filer is using Rule 457(u) to calculate the registration fee due."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "ffd_Scties424iAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Scties424iAxis",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities, 424I [Axis]",
        "terseLabel": "Securities, 424I"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Scties424iLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Scties424iLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities, 424I [Line Items]",
        "terseLabel": "Securities, 424I:"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Scties424iTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Scties424iTable",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/securities424iTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities, 424I [Table]",
        "terseLabel": "Securities, 424I Table"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_Securities424iTableNa": {
     "xbrltype": "naItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "Securities424iNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities 424I [N/A]",
        "terseLabel": "Securities 424I N/A"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_SubmissionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "SubmissionLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Submission [Line Items]",
        "terseLabel": "Items"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_SubmissnTp": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "SubmissnTp",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Submission Type",
        "terseLabel": "Submission Type"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_TermntnCmpltnWdrwl": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "TermntnCmpltnWdrwl",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOffsetTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Termination / Completion / Withdrawal Statement",
        "terseLabel": "Termination / Withdrawal Statement"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_TtlFeeAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "TtlFeeAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Fee Amount",
        "terseLabel": "Total Fee Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlFeeAndIntrstAmt": {
     "xbrltype": "nonNegativeDecimal2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "TtlFeeAndIntrstAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Fee and Interest Amount",
        "terseLabel": "Total Fee and Interest Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlOfferingAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "TtlOfferingAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Offering Amount",
        "terseLabel": "Total Offering"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlOffsetAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "TtlOffsetAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Offset Amount",
        "terseLabel": "Total Offset Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlPrevslyPdAmt": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "TtlPrevslyPdAmt",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Previously Paid Amount",
        "terseLabel": "Previously Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TtlTxValtn": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "TtlTxValtn",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesSummaryTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Transaction Valuation",
        "terseLabel": "Total Transaction Valuation"
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "ffd_TxValtn": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "TxValtn",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Transaction Valuation",
        "terseLabel": "Transaction Valuation"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_ValSctiesRcvd": {
     "xbrltype": "nonNegative100TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "ValSctiesRcvd",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Value of Securities Received",
        "terseLabel": "Value of Securities Received",
        "documentation": "Value of securities to be received by the registrant (or cancelled upon issuance of securities to be registered on the form)"
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "ffd_ValSctiesRcvdPerShr": {
     "xbrltype": "nonNegativeDecimal4lItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2026",
     "localname": "ValSctiesRcvdPerShr",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/feesOfferingTable"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Value of Securities Received, Per Share",
        "terseLabel": "Value of Securities Received, Per Share",
        "documentation": "Value per share of securities to be received by the registrant (or cancelled upon issuance of securities to be registered on the form). This is included in the explanation of 457(f) fee calculation."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r1": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230"
  },
  "r2": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "415",
   "Subsection": "a"
  },
  "r3": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "429"
  },
  "r4": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457"
  },
  "r5": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "b"
  },
  "r6": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "f"
  },
  "r7": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "o"
  },
  "r8": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "p"
  },
  "r9": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "r"
  },
  "r10": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "s"
  },
  "r11": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "457",
   "Subsection": "u"
  },
  "r12": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Subsection": "f",
   "Section": "457"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>16
<FILENAME>0001171843-26-004037-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001171843-26-004037-xbrl.zip
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
M Q0    ( $BARERE4N2@( P  'A9   +              "  0    !E>&A?
=,3 W+FAT;5!+!08      0 ! #D   !)#      !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>exh_107_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2026"
  xmlns:ffd="http://xbrl.sec.gov/ffd/2026"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef
      xlink:href="https://xbrl.sec.gov/ffd/2026/ffd-2026.xsd"
      xlink:type="simple"/>
    <context id="rc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001123494</identifier>
        </entity>
        <period>
            <startDate>2026-06-08</startDate>
            <endDate>2026-06-08</endDate>
        </period>
    </context>
    <context id="offrl_1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001123494</identifier>
            <segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                    <dei:lineNo>1</dei:lineNo>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-06-08</startDate>
            <endDate>2026-06-08</endDate>
        </period>
    </context>
    <context id="offrl_2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001123494</identifier>
            <segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                    <dei:lineNo>2</dei:lineNo>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-06-08</startDate>
            <endDate>2026-06-08</endDate>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="pure">
        <measure>pure</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <ffd:FormTp contextRef="rc" id="ixv-189">S-8</ffd:FormTp>
    <ffd:SubmissnTp contextRef="rc" id="ixv-190">S-8</ffd:SubmissnTp>
    <ffd:FeeExhibitTp contextRef="rc" id="ixv-191">EX-FILING FEES</ffd:FeeExhibitTp>
    <dei:EntityCentralIndexKey contextRef="rc" id="ixv-192">0001123494</dei:EntityCentralIndexKey>
    <dei:EntityRegistrantName contextRef="rc" id="ixv-193">HARVARD BIOSCIENCE INC</dei:EntityRegistrantName>
    <ffd:OfferingTableNa contextRef="rc" id="hiddenrcOfferingTableNa" xsi:nil="true"/>
    <ffd:OffsetTableNa contextRef="rc" id="hiddenrcOffsetTableNa">N/A</ffd:OffsetTableNa>
    <ffd:PrevslyPdFlg contextRef="offrl_1" id="ixv-196">false</ffd:PrevslyPdFlg>
    <ffd:PrevslyPdFlg contextRef="offrl_2" id="ixv-197">false</ffd:PrevslyPdFlg>
    <ffd:FormTp contextRef="rc" id="ixv-231">S-8</ffd:FormTp>
    <dei:EntityRegistrantName contextRef="rc" id="ixv-232">HARVARD BIOSCIENCE INC</dei:EntityRegistrantName>
    <ffd:OfferingSctyTp contextRef="offrl_1" id="ixv-233">Equity</ffd:OfferingSctyTp>
    <ffd:OfferingSctyTitl contextRef="offrl_1" id="ixv-234">Common Stock, $0.01 par value per share</ffd:OfferingSctyTitl>
    <ffd:FeesOthrRuleFlg contextRef="offrl_1" id="ixv-235">true</ffd:FeesOthrRuleFlg>
    <ffd:AmtSctiesRegd
      contextRef="offrl_1"
      decimals="0"
      id="ixv-236"
      unitRef="Shares">400000</ffd:AmtSctiesRegd>
    <ffd:MaxOfferingPricPerScty
      contextRef="offrl_1"
      decimals="2"
      id="ixv-237"
      unitRef="USD">6.38</ffd:MaxOfferingPricPerScty>
    <ffd:MaxAggtOfferingPric
      contextRef="offrl_1"
      decimals="2"
      id="ixv-238"
      unitRef="USD">2552000.00</ffd:MaxAggtOfferingPric>
    <ffd:FeeRate
      contextRef="offrl_1"
      decimals="7"
      id="ixv-239"
      unitRef="pure">0.0001381</ffd:FeeRate>
    <ffd:FeeAmt
      contextRef="offrl_1"
      decimals="2"
      id="ixv-240"
      unitRef="USD">352.43</ffd:FeeAmt>
    <ffd:OfferingSctyTp contextRef="offrl_2" id="ixv-241">Equity</ffd:OfferingSctyTp>
    <ffd:OfferingSctyTitl contextRef="offrl_2" id="ixv-242">Common Stock, $0.01 par value per share</ffd:OfferingSctyTitl>
    <ffd:FeesOthrRuleFlg contextRef="offrl_2" id="ixv-243">true</ffd:FeesOthrRuleFlg>
    <ffd:AmtSctiesRegd
      contextRef="offrl_2"
      decimals="0"
      id="ixv-244"
      unitRef="Shares">120000</ffd:AmtSctiesRegd>
    <ffd:MaxOfferingPricPerScty
      contextRef="offrl_2"
      decimals="2"
      id="ixv-245"
      unitRef="USD">6.38</ffd:MaxOfferingPricPerScty>
    <ffd:MaxAggtOfferingPric
      contextRef="offrl_2"
      decimals="2"
      id="ixv-246"
      unitRef="USD">765600.00</ffd:MaxAggtOfferingPric>
    <ffd:FeeRate
      contextRef="offrl_2"
      decimals="7"
      id="ixv-247"
      unitRef="pure">0.0001381</ffd:FeeRate>
    <ffd:FeeAmt
      contextRef="offrl_2"
      decimals="2"
      id="ixv-248"
      unitRef="USD">105.73</ffd:FeeAmt>
    <ffd:TtlOfferingAmt contextRef="rc" decimals="2" id="ixv-249" unitRef="USD">3317600.00</ffd:TtlOfferingAmt>
    <ffd:TtlFeeAmt contextRef="rc" decimals="2" id="ixv-250" unitRef="USD">458.16</ffd:TtlFeeAmt>
    <ffd:TtlOffsetAmt contextRef="rc" decimals="2" id="ixv-251" unitRef="USD">0.00</ffd:TtlOffsetAmt>
    <ffd:NetFeeAmt contextRef="rc" decimals="2" id="ixv-252" unitRef="USD">458.16</ffd:NetFeeAmt>
    <ffd:OfferingNote contextRef="offrl_1" id="ixv-253">(1)	Pursuant to Rule 416 under the Securities Act of 1933, as amended (the "Securities Act"), this registration statement also covers such an indeterminate amount of shares of common stock, par value $0.01 per share ("Common Stock"), as may become issuable to prevent dilution resulting from stock splits, stock dividends and similar events.
(2)	The amount registered consists of up to 400,000 shares of Common Stock issuable pursuant to the Registrant's Employee Stock Purchase Plan, as amended.
(3)	The proposed maximum offering price per unit is estimated solely for the purpose of calculating the registration fee, based on the average of the high and low prices of the shares of Common Stock on the Nasdaq Capital Market on June 4, 2026 (such date being within five business days of the date that this registration statement was first filed with the Securities and Exchange Commission, in accordance with Rule 457(c) under the Securities Act).
</ffd:OfferingNote>
    <ffd:OfferingNote contextRef="offrl_2" id="ixv-254">(1)	Pursuant to Rule 416 under the Securities Act of 1933, as amended (the "Securities Act"), this registration statement also covers such an indeterminate amount of shares of common stock, par value $0.01 per share ("Common Stock"), as may become issuable to prevent dilution resulting from stock splits, stock dividends and similar events.
(2)	The The amount registered consists of up to 120,000 shares of Common Stock issuable pursuant to the Amended and Restated 2021 Incentive Plan.
(3)	The proposed maximum offering price per unit is estimated solely for the purpose of calculating the registration fee, based on the average of the high and low prices of the shares of Common Stock on the Nasdaq Capital Market on June 4, 2026 (such date being within five business days of the date that this registration statement was first filed with the Securities and Exchange Commission, in accordance with Rule 457(c) under the Securities Act). </ffd:OfferingNote>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
