<SEC-DOCUMENT>0001437749-25-038237.txt : 20251218
<SEC-HEADER>0001437749-25-038237.hdr.sgml : 20251218
<ACCEPTANCE-DATETIME>20251218133054
ACCESSION NUMBER:		0001437749-25-038237
CONFORMED SUBMISSION TYPE:	S-8
PUBLIC DOCUMENT COUNT:		14
FILED AS OF DATE:		20251218
DATE AS OF CHANGE:		20251218
EFFECTIVENESS DATE:		20251218

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			OPTICAL CABLE CORP
		CENTRAL INDEX KEY:			0001000230
		STANDARD INDUSTRIAL CLASSIFICATION:	DRAWING AND INSULATING NONFERROUS WIRE [3357]
		ORGANIZATION NAME:           	04 Manufacturing
		EIN:				541237042
		STATE OF INCORPORATION:			VA
		FISCAL YEAR END:			1031

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

	BUSINESS ADDRESS:	
		STREET 1:		5290 CONCOURSE DR
		CITY:			ROANOKE
		STATE:			VA
		ZIP:			24019
		BUSINESS PHONE:		5402650690

	MAIL ADDRESS:	
		STREET 1:		5290 CONCOURSE DRIVE
		CITY:			ROANOKE
		STATE:			VA
		ZIP:			24019
</SEC-HEADER>
<DOCUMENT>
<TYPE>S-8
<SEQUENCE>1
<FILENAME>occ20251215_s8.htm
<DESCRIPTION>FORM S-8
<TEXT>
<html><head>
	<title>occ20251215_s8.htm</title>

	<!-- Generated by ThunderDome Portal - 12/18/2025 5:10:36 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-size: 10pt; font-family: &quot;Times New Roman&quot;; padding: 0in 0.1in; cursor: auto;">
<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>As filed with the Securities and Exchange Commission on December 18, 2025</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:right;margin:0pt;"><b>Registration No. 333-</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:right;margin:0pt;">&nbsp;</p>

<hr style="height: 1px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 3pt 0">
<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:18pt;font-variant:normal;text-align:center;margin:0pt;"><b>UNITED STATES</b></p>

<p style="font-family:Times New Roman;font-size:18pt;font-variant:normal;text-align:center;margin:0pt;"><b>SECURITIES AND EXCHANGE COMMISSION </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>WASHINGTON, D.C. 20549 </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&nbsp;</p>

<hr style="text-align: center; height: 1px; color: #000000; background-color: #000000; width: 25%; border: none; margin: 3pt auto">
<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:18pt;font-variant:normal;text-align:center;margin:0pt;"><b>FORM S-8 </b></p>

<p style="font-family:Times New Roman;font-size:18pt;font-variant:normal;text-align:center;margin:0pt;"><b>REGISTRATION STATEMENT </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><i>Under </i></b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><i>THE SECURITIES ACT OF 1933 </i></b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&nbsp;</p>

<hr style="text-align: center; height: 1px; color: #000000; background-color: #000000; width: 25%; border: none; margin: 3pt auto">
<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:24pt;font-variant:normal;text-align:center;margin:0pt;"><b>OPTICAL CABLE CORPORATION </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(Exact name of registrant as specified in its charter) </b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<hr style="text-align: center; height: 1px; color: #000000; background-color: #000000; width: 25%; border: none; margin: 3pt auto">
<table border="0" cellpadding="0" cellspacing="0" style="font-size: 10pt; width: 100%; margin-left: auto; margin-right: auto;">

		<tr>
			<td style="vertical-align:middle;width:28.4%;">&nbsp;</td>
			<td style="vertical-align:bottom;width:1.7%;">&nbsp;</td>
			<td style="vertical-align:middle;width:27.8%;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-size: 10pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; text-align: center; margin: 0pt; font-family: &quot;Times New Roman&quot;;"><b>Virginia</b></p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-size: 10pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; text-align: center; margin: 0pt; font-family: &quot;Times New Roman&quot;;"><b>54-1237042</b></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-size: 10pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; text-align: center; margin: 0pt; font-family: &quot;Times New Roman&quot;;"><b>(State or other jurisdiction of</b></p>

			<p style="font-size: 10pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; text-align: center; margin: 0pt; font-family: &quot;Times New Roman&quot;;"><b>incorporation or organization)</b></p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-size: 10pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; text-align: center; margin: 0pt; font-family: &quot;Times New Roman&quot;;"><b>(I.R.S. Employer</b></p>

			<p style="font-size: 10pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; text-align: center; margin: 0pt; font-family: &quot;Times New Roman&quot;;"><b>Identification Number)</b></p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>5290 Concourse Drive, Roanoke, Virginia 24019 </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(Address, including zip code, of registrant</b>&#8217;<b>s principal executive offices) </b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<hr style="text-align: center; height: 1px; color: #000000; background-color: #000000; width: 25%; border: none; margin: 3pt auto">
<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Optical Cable Corporation 2017 Stock Incentive Plan </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(Full title of the plan) </b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<hr style="text-align: center; height: 1px; color: #000000; background-color: #000000; width: 25%; border: none; margin: 3pt auto">
<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><br>
<b>Mr. Neil D. Wilkin, Jr.</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Ms. Tracy G. Smith </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Optical Cable Corporation </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>5290 Concourse Drive </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Roanoke, Virginia 24019 </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(540) 265-0690 </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(Name, address, including zip code, and telephone number, including area code, of agent for service) </b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<hr style="text-align: center; height: 1px; color: #000000; background-color: #000000; width: 25%; border: none; margin: 3pt auto">
<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><i>With a copy to: </i></b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Mr. Brian M. Brown, Esq. </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Woods Rogers PLC </b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Riverfront Plaza, West Tower</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>901 East Byrd Street, Suite 1550</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Richmond, Virginia 23219</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(804) 343-5020</b>&nbsp;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<hr style="text-align: center; height: 1px; color: #000000; background-color: #000000; width: 25%; border: none; margin: 3pt auto">
<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer or a smaller reporting company. See definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer&#8221; and &#8220;smaller reporting company&#8221; in Rule 12b-2 of the Exchange Act.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;text-indent:25pt;">Large Accelerated Filer &#9744;&nbsp; &nbsp; Accelerated Filer&nbsp;&#9744;&nbsp; &nbsp; Non-accelerated Filer &#9746;&nbsp; &nbsp; Smaller Reporting Company&nbsp;&#9746;&nbsp; &nbsp; Emerging Growth Company&nbsp;&#9744;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">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 13(a) of the Exchange Act.&nbsp;&#9744;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<hr style="height: 1px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 3pt 0">
<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>EXPLANATORY NOTE</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;text-indent:25pt;">Optical Cable Corporation (the &#8220;Company&#8221;) is filing this Registration Statement on Form S-8 for the purpose of registering 1,200,000 shares of its common stock, no par value per share (the &#8220;Common Shares&#8221;), issuable to eligible persons under the Optical Cable Corporation 2017 Stock Incentive Plan, as amended on March 29, 2022 by the First Amendment and on March 25, 2025 by the Second Amendment to the Optical Cable Corporation 2017 Stock Incentive Plan (as so amended, the &#8220;2017 Plan&#8221;).</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGNUM" style="text-align: center; width: 100%">&nbsp;</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">&nbsp;</div>
</div>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>PART II. INFORMATION REQUIRED IN THE REGISTRATION STATEMENT </b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Item 3.</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Incorporation of Documents by Reference.</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The Company hereby incorporates by reference into this Registration Statement the following documents which have been filed with the Securities and Exchange Commission (the &#8220;Commission&#8221;):</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;font-family:Times New Roman;font-size:10pt;">

		<tr>
			<td style="width:18pt;">&nbsp;</td>
			<td style="vertical-align:top;width:18pt;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(a)</p>
			</td>
			<td style="vertical-align:top;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">the Company&#8217;s Annual Report on <a href="http://www.sec.gov/ix?doc=/Archives/edgar/data/1000230/000143774925038228/occ20251031_10k.htm" style="-sec-extract:exhibit;">Form 10-K</a> for the fiscal year ended October 31, 2025 filed on December 18, 2025;&nbsp;</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;font-family:Times New Roman;font-size:10pt;">

		<tr>
			<td style="width:18pt;">&nbsp;</td>
			<td style="vertical-align:top;width:18pt;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(b)</p>
			</td>
			<td style="vertical-align:top;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">the description of our common shares and share purchase rights, all as contained in our registration statement on <a href="http://www.sec.gov/Archives/edgar/data/1000230/000143774921025513/occ20211105_8a12ga.htm" style="-sec-extract:exhibit;"><u>Form 8-A/A</u></a>&nbsp;filed November 5, 2021, including any amendments or reports filed for the purpose of updating or supplementing such description.</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">All documents subsequently filed by the Company pursuant to Sections 13(a), 13(c), 14 and 15(d) of the Exchange Act, (other than any information that is furnished but that is deemed not to have been filed) prior to the filing of a post-effective amendment which indicates that all securities offered hereby have been sold or which deregisters all such securities then remaining unsold, shall be deemed to be incorporated by reference in this Registration Statement and to be part hereof from the respective dates of filing of such documents. Any statement contained in a document incorporated or deemed to be incorporated by reference herein shall be deemed to be modified or superseded for purposes of this Registration Statement and the Prospectus to the extent that a statement contained herein or in any other subsequently filed document that also is or is deemed to be incorporated by reference herein modifies or supersedes such statement. Any such statement so modified or superseded shall not be deemed, except as so modified or superseded, to constitute a part of this Registration Statement.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The Company will provide without charge to each participant in the Plan, on the written or oral request of any such person, a copy of any or all of the documents incorporated herein by reference (other than exhibits to such documents which are not specifically incorporated by reference in such documents). Written requests for such copies should be addressed to: the Company at its principal executive offices, 5290 Concourse Drive, Roanoke, Virginia 24019, attention Tracy G. Smith, Corporate Secretary.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Item 4.</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Description of Securities.</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;text-indent:25pt;"><i>Not applicable. </i></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGNUM" style="text-align: center; width: 100%">&nbsp;</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">&nbsp;</div>
</div>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Item 5.</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Interests of Named Experts and Counsel.</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;text-indent:25pt;"><i>Not applicable. </i></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Item 6.</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Indemnification of Directors and Officers.</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Section&nbsp;13.1-692.1 of the Code of Virginia, 1950, as amended, places a limitation on the liability of officers and directors of a corporation in any proceeding brought by or in the right of the corporation or brought by or on behalf of shareholders of the corporation. The damages assessed against an officer or director arising out of a single transaction, occurrence, or course of conduct shall not exceed the greater of $100,000 or the amount of cash compensation received by the officer or director from the corporation during the 12 months immediately preceding the act or omission for which liability was imposed. The statute also authorizes the corporation, in its articles of incorporation or, if approved by the shareholders, in its bylaws, to provide for a different specific monetary limit on, or to eliminate entirely, liability. The liability of an officer or director shall not be limited if the officer or director engaged in willful misconduct or a knowing violation of the criminal law or any federal or state securities law. The Company&#8217;s Amended and Restated Articles of Incorporation (the &#8220;Articles&#8221;) contain a provision which eliminates, to the full extent that the laws of the Commonwealth of Virginia permit, the liability of an officer or director of the Company to the Company or its shareholders for monetary damages for any breach of duty as a director or officer.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The Company&#8217;s Articles also require the Company to indemnify any director or officer who is or was a party to a proceeding, including a proceeding by or in the right of the Company, by reason of the fact that he is or was such a director or officer or is or was serving at the request of the Company as a director, officer, employee or agent of another entity. Directors and officers of the Company are entitled to be indemnified against all liabilities and expenses incurred by the director or officer in the proceeding, except such liabilities and expenses as are incurred because of his or her willful misconduct or knowing violation of the criminal law. Unless a determination has been made that indemnification is not permissible, a director or officer also is entitled to have the Company make advances and reimbursement for expenses prior to final disposition of the proceeding upon receipt of a written undertaking from the director or officer to repay the amounts advanced or reimbursed if it is ultimately determined that he or she is not entitled to indemnification. The Board of Directors of the Company also has the authority to extend to employees, agents, and other persons serving at the request of the Company the same indemnification rights held by directors and officers, subject to all of the accompanying conditions and obligations.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Virginia Code Section&nbsp;13.1-700.1 permits a court, upon application of a director or officer, to review Company&#8217;s determination as to a director&#8217;s or officer&#8217;s request for advances, reimbursement or indemnification. If it determines that the director or officer is entitled to such advances, reimbursement or indemnification, the court may order Company to make advances and/or reimbursement for expenses or to provide indemnification, in which case the court shall also order Company to pay the officer&#8217;s or director&#8217;s reasonable expenses incurred to obtain the order. With respect to a proceeding by or in the right of the Company, the court may order indemnification to the extent of the officer&#8217;s or director&#8217;s reasonable expenses if it determines that, considering all the relevant circumstances, the officer or director is entitled to indemnification even though he or she was adjudged liable, and may also order Company to pay the officer&#8217;s and director&#8217;s reasonable expenses incurred to obtain the order of indemnification.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The Company has the power to purchase and maintain insurance on behalf of any person who is or was a director, officer, employee or agent of Company, or is or was serving at the request of Company as a director, officer, employee or agent of another entity, against any liability asserted against or incurred by such person, in any such capacity or arising from his or her status as such, whether or not Company would have the power to indemnify such person against such liability under the Articles.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The Company maintains a directors&#8217; and officers&#8217; legal liability insurance policy. The policy provides coverage, subject to certain deductible or retention amounts, for (i)&nbsp;Company&#8217;s directors and officers against losses by reason of their wrongful acts, and (ii)&nbsp;Company against claims against the directors and officers by reasons of their wrongful acts for which Company is required to indemnify or pay, all as such terms are defined in the policy and subject to the terms, conditions and exclusions contained therein.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM">&nbsp;</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Pursuant to the Company&#8217;s Articles, the Company may maintain a directors&#8217; and officers&#8217; insurance policy which insures the directors and officers of the Company against liability asserted against such persons in such capacity whether or not the Company would have the power to indemnify such person against such liability under the Act.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The foregoing is only a general summary of certain aspects of the Act and the Company&#8217;s Articles dealing with indemnification of directors and officers, and does not purport to be complete. It is qualified in its entirety by reference to the detailed provisions of Article 10 of the Act and Article VI of the Articles of the Company.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Item 7.</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Exemption From Registration Claimed. </b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><i>Not applicable. </i></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Item 8.</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Exhibits.</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The exhibits listed on the Exhibit Index are filed as part of, and incorporated by reference into, this report.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Item 9. Undertakings.</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;font-family:Times New Roman;font-size:10pt;">

		<tr>
			<td style="width:18pt;">&nbsp;</td>
			<td style="vertical-align:top;width:18pt;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(a)</p>
			</td>
			<td style="vertical-align:top;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The undersigned Registrant hereby undertakes:&nbsp;</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 36pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="margin: 0pt; text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">(1)</p>
			</td>
			<td style="width: auto;">
			<p style="margin: 0pt; text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">To file, during any period in which offers or sales are being made, a post-effective amendment to this registration statement:</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 54pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="margin: 0pt; text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">(i)</p>
			</td>
			<td style="width: auto;">
			<p style="margin: 0pt; text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">To include any prospectus required by Section 10(a)(3) of the Securities Act of 1933;</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;font-family:Times New Roman;font-size:10pt;">

		<tr>
			<td style="width:54pt;">&nbsp;</td>
			<td style="vertical-align:top;width:18pt;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(ii)</p>
			</td>
			<td style="vertical-align:top;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">To reflect in the prospectus any facts or events arising after the effective date of the registration statement (or the most recent post-effective amendment thereof) which, individually or in the aggregate, represent a fundamental change in the information set forth in the registration statement. Notwithstanding the foregoing, any increase or decrease in volume of securities offered (if the total dollar value of securities offered would not exceed that which was registered) and any deviation from the low or high end of the estimated maximum offering range may be reflected in the form of prospectus filed with the Commission pursuant to Rule 424(b) if, in the aggregate, the changes in volume and price represent no more than 20% change in the maximum aggregate offering price set forth in the "Calculation of Registration Fee" table in the effective registration statement;</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;font-family:Times New Roman;font-size:10pt;">

		<tr>
			<td style="width:54pt;">&nbsp;</td>
			<td style="vertical-align:top;width:18pt;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(iii)</p>
			</td>
			<td style="vertical-align:top;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">To include any material information with respect to the plan of distribution not previously disclosed in the registration statement or any material change to such information in the registration statement;</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt 0pt 0pt 54pt;">provided, however, that paragraphs (a)(1)(i) and (a)(1)(ii) of this section do not apply if the registration statement is on Form S-8, and the information required to be included in a post-effective amendment by those paragraphs is contained in reports filed with or furnished to the Commission by the registrant pursuant to Section 13 or Section 15(d) of the Securities Exchange Act of 1934 that are incorporated by reference in the registration statement.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 36pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="margin: 0pt; text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">(2)</p>
			</td>
			<td style="width: auto;">
			<p style="margin: 0pt; text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">That, for the purpose of determining any liability under the Securities Act of 1933, each post-effective amendment shall be deemed to be a new registration statement relating to the securities offered therein, and the offering of such securities at that time shall be deemed to be the initial bona fide offering thereof.</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM">&nbsp;</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 36pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="margin: 0pt; text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">(3)</p>
			</td>
			<td style="width: auto;">
			<p style="margin: 0pt; text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">To remove from registration by means of a post-effective amendment any of the securities being registered which remain unsold at the termination of the offering.</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;font-family:Times New Roman;font-size:10pt;">

		<tr>
			<td style="width:18pt;">&nbsp;</td>
			<td style="vertical-align:top;width:18pt;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(b)</p>
			</td>
			<td style="vertical-align:top;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The undersigned registrant hereby undertakes that, for purposes of determining any liability under the Securities Act of 1933, each filing of the registrant&#8217;s annual report pursuant to Section 13(a) or Section 15(d) of the Securities Exchange Act of 1934, and, where applicable, each filing of an employee benefit plan&#8217;s annual report pursuant to Section 15(d) of the Securities Exchange Act of 1934 that is incorporated by reference in the registration statement shall be deemed to be a new registration statement relating to the securities offered therein, and the offering of such securities at that time shall be deemed to be the initial bona fide offering thereof.</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;font-family:Times New Roman;font-size:10pt;">

		<tr>
			<td style="width:18pt;">&nbsp;</td>
			<td style="vertical-align:top;width:18pt;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(c)</p>
			</td>
			<td style="vertical-align:top;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Insofar as indemnification for liabilities arising under the Securities Act of 1933 may be permitted to directors, officers and controlling persons of the registrant pursuant to the foregoing provisions, or otherwise, the registrant has been advised that in the opinion of the Securities and Exchange Commission such indemnification is against public policy as expressed in the Securities Act of 1933 and is, therefore, unenforceable. In the event that a claim for indemnification against such liabilities (other than the payment by the registrant of expenses incurred or paid by a director, officer or controlling person of the registrant in the successful defense of any action suit or proceeding) is asserted by such director, officer or controlling person in connection with the securities being registered, the registrant will, unless in the opinion of its counsel the matter has been settled by controlling precedent, submit to a court of appropriate jurisdiction the question whether such indemnification by it is against public policy as expressed in the Securities Act of 1933 and will be governed by the final adjudication of such issue.</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGNUM" style="text-align: center; width: 100%">&nbsp;</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">&nbsp;</div>
</div>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><u>Exhibit Index</u></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The following exhibits are filed herewith as part of, or incorporated by reference in, this Registration Statement:</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:97%;margin-left:auto;margin-right:auto;">

		<tr>
			<td style="vertical-align:middle;width:28%;">&nbsp;</td>
			<td style="vertical-align:middle;width:31.3%;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align: bottom; width: auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>EXHIBIT</b><br>
			<b>NO.</b></p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

			<hr style="text-align: left; height: 1px; color: #000000; background-color: #000000; width: 10%; border: none; margin: 3pt auto 3pt 0"></td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>DESCRIPTION</b></p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

			<hr style="text-align: left; height: 1px; color: #000000; background-color: #000000; width: 10%; border: none; margin: 3pt auto 3pt 0"></td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">4.1</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><a href="http://www.sec.gov/Archives/edgar/data/1000230/000091664101501441/dex1.txt" style="-sec-extract:exhibit;"><u>Articles of Amendment&nbsp;and Amended and Restated Articles of Incorporation filed November 5, 2001 to the Amended and Restated Articles of Incorporation, as amended through November 5, 2001 (incorporated by reference to Exhibit 1 to the Company&#8217;</u><u>s Form 8-A12G filed with the Commission on November 5, 2001).</u>&nbsp;</a></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">4.2</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><a href="http://www.sec.gov/Archives/edgar/data/1000230/000112726402000123/occ_def.txt" style="-sec-extract:exhibit;"><u>Articles of Amendment filed July 5, 2002 to the Amended and Restated Articles of Incorporation, as amended through July 5, 2002 (incorporated herein by reference to Appendix A to the Company</u><u>&#8217;</u><u>s definitive proxy statement on Form 14A filed July 5, 2002).</u></a></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">4.3</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><a href="http://www.sec.gov/Archives/edgar/data/1000230/000143774923006415/ex_483937.htm" style="-sec-extract:exhibit;"><u>Amended and Restated Bylaws of Optical Cable Corporation effective March 9, 2023 (incorporated herein by reference to Exhibit 3.4 to the Company</u><u>&#8217;</u><u>s Quarterly Report on Form 10-Q for the first quarter ended January 31, 2023).</u></a></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">4.4</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><a href="http://www.sec.gov/Archives/edgar/data/1000230/000143774921025513/ex_303347.htm" style="-sec-extract:exhibit;"><u>Amended and Restated Stockholder Protection Rights Agreement, dated as of November 2, 2021, between Optical Cable Corporation and American Stock Transfer &amp; Trust Company, LLC, as rights agent (incorporated herein by reference to Exhibit 4.1 to the Company&#8217;</u><u>s Form 8-A12G field with the Commission on November 5, 2021).</u>&nbsp;</a></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">5.1</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><a href="ex_899218.htm" style="-sec-extract:exhibit;">Opinion of Woods Rogers Vandeventer Black PLC as to the legality of the securities being registered.*</a></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">23.1</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><a href="ex_899217.htm" style="-sec-extract:exhibit;">Consent of Crowe LLP, Independent Registered Public Accounting Firm.*</a></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">23.2</p>
			</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><a href="ex_899218.htm" style="-sec-extract:exhibit;">Consent of Woods Roger Vandeventer Black PLC (included in Exhibit 5.1).*</a></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">107</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><a href="ex_899220.htm" style="-sec-extract:exhibit;">Filing Fee Table. *</a></p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<hr style="text-align: left; height: 1px; color: #000000; background-color: #000000; width: 10%; border: none; margin: 3pt auto 3pt 0">
<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;margin-left:auto;margin-right:auto;">

		<tr>
			<td style="vertical-align:top;width:1.2%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">*</p>
			</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Filed herewith.</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGNUM" style="text-align: center; width: 100%">&nbsp;</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">&nbsp;</div>
</div>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>SIGNATURES </b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Pursuant to the requirements of the Securities Act of 1933, as amended, 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 County of Roanoke, Commonwealth of Virginia, on December 18, 2025.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;margin-left:auto;margin-right:auto;">

		<tr>
			<td style="vertical-align:middle;width:1.2%;">&nbsp;</td>
			<td style="vertical-align:bottom;width:1.2%;">&nbsp;</td>
			<td style="vertical-align:middle;width:24.3%;">&nbsp;</td>
			<td style="vertical-align:bottom;width:1.2%;">&nbsp;</td>
			<td style="vertical-align:middle;width:1.2%;">&nbsp;</td>
			<td style="vertical-align:bottom;width:1.2%;">&nbsp;</td>
			<td style="vertical-align:middle;width:24.3%;">&nbsp;</td>
		</tr>
		<tr>
			<td colspan="3" style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td colspan="3" style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">OPTICAL CABLE CORPORATION</p>
			</td>
		</tr>
		<tr>
			<td colspan="3" style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td colspan="2" style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td colspan="2" style="vertical-align:middle;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td colspan="3" style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date:&nbsp;December 18, 2025</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">By:</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">/s/&nbsp;&nbsp;&nbsp;&nbsp;TRACY G. SMITH</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td colspan="2" style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td style="vertical-align: bottom; width: auto; border-bottom: 1px solid rgb(0, 0, 0);">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Tracy G. Smith</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Senior Vice President and Chief Financial Officer</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Pursuant to the requirements of the Securities Act of 1933, as amended, this registration statement has been signed by the following persons in the capacities and on the dates indicated.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;margin-left:auto;margin-right:auto;">

		<tr>
			<td style="vertical-align:middle;width:26.6%;">&nbsp;</td>
			<td style="vertical-align:bottom;width:1.2%;">&nbsp;</td>
			<td style="vertical-align:middle;width:26.6%;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td colspan="2" style="vertical-align:middle;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date: December 18, 2025</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">/s/&nbsp;&nbsp;&nbsp;&nbsp;NEIL D. WILKIN, JR.</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td style="vertical-align: bottom; width: auto; border-bottom: 1px solid rgb(0, 0, 0);">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Neil D. Wilkin, Jr.</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Chairman of the Board of Directors,</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">President and Chief Executive Officer</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(Principal Executive Officer)</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td colspan="2" style="vertical-align:middle;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date: December 18, 2025</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">/s/&nbsp;&nbsp;&nbsp;&nbsp;TRACY G. SMITH</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td style="vertical-align: bottom; width: auto; border-bottom: 1px solid rgb(0, 0, 0);">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Tracy G. Smith</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Senior Vice President and Chief Financial Officer</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(Principal Financial Officer and Principal Accounting Officer)</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date: December 18, 2025</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">/s/&nbsp;&nbsp;&nbsp;&nbsp;RANDALL H. FRAZIER</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td style="vertical-align: bottom; width: auto; border-bottom: 1px solid rgb(0, 0, 0);">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Randall H. Frazier</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Director</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td colspan="2" style="vertical-align:middle;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date: December 18, 2025</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">/s/&nbsp;&nbsp;&nbsp;&nbsp;JOHN M. HOLLAND</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align: bottom; width: auto; border-bottom: 1px solid rgb(0, 0, 0);">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">John M. Holland</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Director</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date: December 18, 2025</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">/s/&nbsp;&nbsp;&nbsp;&nbsp;JOHN A. NYGREN</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td style="vertical-align: bottom; width: auto; border-bottom: 1px solid rgb(0, 0, 0);">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">John A. Nygren</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Director</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td colspan="2" style="vertical-align:middle;width:auto;">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date: December 18, 2025</p>
			</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:top;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">/s/&nbsp;&nbsp;&nbsp;&nbsp;CRAIG H. WEBER</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:middle;width:auto;">&nbsp;</td>
			<td style="vertical-align: bottom; width: auto; border-bottom: 1px solid rgb(0, 0, 0);">&nbsp;</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">&nbsp;</td>
			<td style="vertical-align:bottom;width:auto;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Craig H. Weber</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Director</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-5.1
<SEQUENCE>2
<FILENAME>ex_899218.htm
<DESCRIPTION>EXHIBIT 5.1
<TEXT>
<html><head></head><body><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:right;margin:0pt;"><b>EXHIBIT 5.1 </b></p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">December 18, 2025</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Optical Cable Corporation</p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">5290 Concourse Drive</p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Roanoke, Virginia 24019</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt;">RE: Registration Statement on Form S-8</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Gentlemen:</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">We have acted as counsel to Optical Cable Corporation, a Virginia corporation (the &#8220;Company&#8221;) in connection with the Registration Statement on Form S-8 (the &#8220;Registration Statement&#8221;) that is being filed on the date hereof with the Securities and Exchange Commission by the Company pursuant to the Securities Act of 1933, as amended, relating to the registration of 1,200,000 common shares, no par value (the &#8220;Shares&#8221;) of the Company, which may be issued pursuant to the Optical Cable Corporation 2017 Stock Incentive Plan, as amended on March 29, 2022 by the First Amendment and on March 25, 2025 by the Second Amendment to the Optical Cable Corporation 2017 Stock Incentive Plan (as so amended, the &#8220;2017 Plan&#8221;).</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">We have examined copies, certified or otherwise identified to our satisfaction, of the 2017 Plan and such corporate records and other documents as we have considered necessary or appropriate for the purposes of this opinion and have made such inquiries of officers and representatives of the Company as to factual matters as we have considered relevant and necessary as a basis for this opinion. Based on the foregoing, we are of the opinion that the Shares which may be issued under the Plan have been validly authorized and, when issued or sold in accordance with the terms of the Plan, will be legally issued, fully paid and nonassessable.</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The opinion expressed herein is limited to the Corporations law of the Commonwealth of Virginia, as currently in effect, and we express no opinion with respect to any other law of the Commonwealth of Virginia or the laws of any other jurisdiction. In addition, we have assumed that the resolutions authorizing the Company to issue or deliver and sell the Shares pursuant to the 2017 Plan will be in full force and effect at all times at which such Shares are issued or delivered or sold by the Company, and that the Company will take no action inconsistent with such resolutions.</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">This opinion is rendered to you and for your benefit solely in connection with the registration of the Shares to be issued pursuant to the Plan. This opinion may not be relied on by you for any other purpose and may not be relied upon by, nor may copies thereof be provided to, any other person, firm, corporation, or entity for any purposes whatsoever without our prior written consent. Notwithstanding the foregoing, we hereby consent to be named in the Registration Statement as attorneys who passed upon the legality of the Shares and to the filing of a copy of this opinion as Exhibit 5.1 to the Registration Statement.</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Very truly yours,</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">/s/&nbsp;&nbsp;&nbsp;Woods Rogers Vandeventer Black PLC</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>3
<FILENAME>ex_899217.htm
<DESCRIPTION>EXHIBIT 23.1
<TEXT>
<html><head></head><body><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:right;margin:0pt;"><b>Exhibit 23.1</b></p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Consent of Independent Registered Public Accounting Firm</b></p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The Board of Directors<br>Optical Cable Corporation:</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">We consent to the incorporation by reference in this Registration Statement on Form S-8 of Optical Cable Corporation of our report dated December 18, 2025 relating to the consolidated financial statements appearing in the Annual Report on Form 10-K of Optical Cable Corporation for the year ended October 31, 2025.</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">/s/ Crowe LLP</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Oakbrook Terrace, Illinois</p><p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">December 18, 2025</p><p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><br></p><div data-cke-temp="1" contenteditable="false" unselectable="on" style="position: absolute; cursor: col-resize; opacity: 0; padding: 0px; background-color: rgb(0, 0, 68); background-image: none; border: 0px none; z-index: 10; width: 3px; height: 626.667px; left: 686px; top: 4256.56px; display: none;"></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-FILING FEES
<SEQUENCE>4
<FILENAME>ex_899220.htm
<DESCRIPTION>EXHIBIT FILING FEES
<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/2025" xmlns:ffd="http://xbrl.sec.gov/ffd/2025">
  <head>
    <title>EX-FILING FEES</title>
  </head>
  <body>
    <div style="display: none">
      <ix:header>
        <ix:hidden>
          <ix:nonNumeric name="ffd:FormTp" contextRef="rc" id="ixv-168">S-8</ix:nonNumeric>
          <ix:nonNumeric name="ffd:SubmissnTp" contextRef="rc" id="ixv-169">S-8</ix:nonNumeric>
          <ix:nonNumeric name="ffd:FeeExhibitTp" contextRef="rc" id="ixv-170">EX-FILING FEES</ix:nonNumeric>
          <ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="rc" id="ixv-171">0001000230</ix:nonNumeric>
          <ix:nonNumeric name="dei:EntityRegistrantName" contextRef="rc" id="ixv-172">OPTICAL CABLE CORP</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-175">Fees to be Paid</ix:nonNumeric>
        </ix:hidden>
        <ix:references>
          <link:schemaRef xlink:href="https://xbrl.sec.gov/ffd/2025/ffd-2025.xsd" xlink:type="simple"/>
        </ix:references>
        <ix:resources>
          <xbrli:context id="rc">
            <xbrli:entity>
              <xbrli:identifier scheme="http://www.sec.gov/CIK">0001000230</xbrli:identifier>
            </xbrli:entity>
            <xbrli:period>
              <xbrli:startDate>2025-12-16</xbrli:startDate>
              <xbrli:endDate>2025-12-16</xbrli:endDate>
            </xbrli:period>
          </xbrli:context>
          <xbrli:context id="offrl_1">
            <xbrli:entity>
              <xbrli:identifier scheme="http://www.sec.gov/CIK">0001000230</xbrli:identifier>
              <xbrli:segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                  <dei:lineNo>1</dei:lineNo>
                </xbrldi:typedMember>
              </xbrli:segment>
            </xbrli:entity>
            <xbrli:period>
              <xbrli:startDate>2025-12-16</xbrli:startDate>
              <xbrli:endDate>2025-12-16</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>
      <table style="width: 99%; font-family: Arial, Helvetica, sans-serif; font-size: 20pt; text-align: center;">
        <tr>
          <td colspan="4" style="padding-bottom: .5em">
            <p>
              <b>Calculation of Filing Fee Tables</b>
            </p>
          </td>
        </tr>
        <tr>
          <td style="padding-bottom: .25em">
            <p>
              <b>
                <ix:nonNumeric name="ffd:FormTp" contextRef="rc" id="ixv-200">S-8</ix:nonNumeric>
              </b>
            </p>
          </td>
        </tr>
        <tr>
          <td style="padding-bottom: .25em">
            <p>
              <b>
                <ix:nonNumeric name="dei:EntityRegistrantName" contextRef="rc" id="ixv-201">OPTICAL CABLE CORP</ix:nonNumeric>
              </b>
            </p>
          </td>
        </tr>
      </table>
    </div>
    <div style="padding-bottom: 20px;">
      <table style="float: center; width: 100%; text-align: left;  ">
        <tr style="font-family: Arial, Helvetica, sans-serif; font-size: 16px">
          <th style="vertical-align: bottom; text-align: center; width: 90%; word-wrap: break-word">
            <p style="margin: 0pt; text-align: center;">
              <b>Table 1: Newly Registered Securities</b>
            </p>
          </th>
        </tr>
      </table>
      <table style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; float: center; width: 90%; text-align: center;  border: 1px solid black; margin-left: auto; margin-right: auto;">
        <tr style="background-color:#9ADAF6">
          <th style="width: 2%;">
            <!-- BLANK -->
          </th>
          <th style="width: 10%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Security Type</b>
            </p>
          </th>
          <th style="width: 10%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Security Class Title </b>
            </p>
          </th>
          <th style="width: 10%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Fee Calculation Rule</b>
            </p>
          </th>
          <th style="width: 10%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Amount Registered</b>
            </p>
          </th>
          <th style="width: 15%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Proposed Maximum Offering Price Per Unit</b>
            </p>
          </th>
          <th style="width: 15%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Maximum Aggregate Offering Price</b>
            </p>
          </th>
          <th style="width: 3%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Fee Rate</b>
            </p>
          </th>
          <th style="width: 15%;">
            <p style="margin: 0pt; text-align: center;">
              <b>Amount of Registration Fee</b>
            </p>
          </th>
        </tr>
        <tr style="background-color:#E7E7E2">
          <td style="text-align: center;">
		1
	</td>
          <td style="text-align: left;">
            <ix:nonNumeric name="ffd:OfferingSctyTp" contextRef="offrl_1" id="ixv-202">Equity</ix:nonNumeric>
          </td>
          <td style="text-align: left;">
            <ix:nonNumeric name="ffd:OfferingSctyTitl" contextRef="offrl_1" id="ixv-203">Common Stock</ix:nonNumeric>
          </td>
          <td style="text-align: center;">
            <ix:nonNumeric name="ffd:FeesOthrRuleFlg" contextRef="offrl_1" format="ixt:booleantrue" id="ixv-204">Other</ix:nonNumeric>
          </td>
          <td style="text-align: right;">
            <ix:nonFraction name="ffd:AmtSctiesRegd" unitRef="Shares" decimals="0" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-205">1,200,000</ix:nonFraction>
          </td>
          <td style="text-align: right;">
            <span>$</span>
            <ix:nonFraction name="ffd:MaxOfferingPricPerScty" unitRef="USD" decimals="INF" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-206">8.705</ix:nonFraction>
          </td>
          <td style="text-align: right;">
            <span>$</span>
            <ix:nonFraction name="ffd:MaxAggtOfferingPric" unitRef="USD" decimals="INF" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-207">10,446,000.00</ix:nonFraction>
          </td>
          <td style="text-align: right;">
            <ix:nonFraction name="ffd:FeeRate" unitRef="pure" decimals="INF" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-208">0.0001381</ix:nonFraction>
          </td>
          <td style="text-align: right;">
            <span>$</span>
            <ix:nonFraction name="ffd:FeeAmt" unitRef="USD" decimals="INF" format="ixt:numdotdecimal" contextRef="offrl_1" id="ixv-209">1,442.59</ix:nonFraction>
          </td>
        </tr>
        <tr>
          <td colspan="5" style="vertical-align: top">
            <p style="margin: 0pt; text-align: right">Total Offering Amounts:</p>
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td style="vertical-align: top; width: 16%;">
            <p id="MaxAggtOfferingPrice" style="margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlOfferingAmt" contextRef="rc" decimals="INF" format="ixt:numdotdecimal" unitRef="USD" id="ixv-210">10,446,000.00</ix:nonFraction>
            </p>
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td style="vertical-align: top; border-bottom: 1px black; width: 16%;">
            <p id="TotalFeeAmt" style="margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlFeeAmt" contextRef="rc" decimals="INF" format="ixt:numdotdecimal" unitRef="USD" id="ixv-211">1,442.59</ix:nonFraction>
            </p>
          </td>
        </tr>
        <tr>
          <td colspan="5" style="vertical-align: top">
            <p style="margin: 0pt; text-align: right">
					Total Fee Offsets:
				</p>
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td style="vertical-align: top">
            <p id="TotalOffsetAmt" style="margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:TtlOffsetAmt" contextRef="rc" decimals="INF" format="ixt:numdotdecimal" unitRef="USD" id="ixv-212">0.00</ix:nonFraction>
            </p>
          </td>
        </tr>
        <tr>
          <td colspan="5" style="vertical-align: top">
            <p style="margin: 0pt; text-align: right">
					Net Fee Due:
				</p>
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td>
            <!-- BLANK -->
          </td>
          <td style="vertical-align: top">
            <p id="NetFeeAmt" style="margin: 0pt; text-align: right">
              <span>$</span>
              <ix:nonFraction name="ffd:NetFeeAmt" contextRef="rc" decimals="INF" format="ixt:numdotdecimal" unitRef="USD" id="ixv-213">1,442.59</ix:nonFraction>
            </p>
          </td>
        </tr>
      </table>
    </div>
    <div>
      <table style="width: 90%; margin-left:auto; margin-right:auto; text-indent: 0px;">
        <tbody>
          <tr style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; vertical-align: top;">
            <td>
              <p style="margin:0pt;text-align:left; margin-bottom: 5px;">
                <b>Offering Note</b>
              </p>
            </td>
            <td/>
          </tr>
        </tbody>
      </table>
    </div>
    <div style="padding-bottom: 20px;">
      <table style="width: 90%; margin-left:auto; margin-right:auto; text-indent: 0px;">
        <tr style="font-family: Arial, Helvetica, sans-serif; font-size: 16px; vertical-align: top;">
          <td style="width:10pt;">
            <p style="margin:0pt;text-align:left;">
              <sup style="vertical-align:top;line-height:120%;font-size:10px">1</sup>
            </p>
          </td>
          <td colspan="7" style="white-space: pre-line;">
            <ix:nonNumeric name="ffd:OfferingNote" escape="1" contextRef="offrl_1" id="ixv-214">(1)  Pursuant to Rule 416(a) under the Securities Act of 1933, as amended (the "Securities Act"), this Registration Statement shall also cover any additional shares of common stock of Optical Cable Corporation Inc. (the "Company") that become issuable under the Optical Cable Corporation 2017 Stock Incentive Plan, as amended (the "2017 Plan") set forth herein by reason of any stock dividend, stock split, recapitalization, or other similar transaction effected that results in an increase to the number of outstanding shares of the Company's common stock.
(2) Represents shares of common stock, no par value, of the Registrant issuable pursuant to the 2017 Plan.
(3)  Estimated in accordance with Rule 457(h) under the Securities Act solely for the purpose of calculating the registration fee on the basis of $8.705, the average of the high and low prices of the Company's common shares as reported on The NASDAQ Global Market on December 15, 2025.
</ix:nonNumeric>
          </td>
        </tr>
        <tr>
          <td colspan="7">
            <hr style="width:100%;text-align:left;margin-left:0"/>
          </td>
        </tr>
      </table>
    </div>
    <div style="padding-bottom: 20px;">
      <table style="float: center; width: 100%; text-align: left;  ">
        <tr style="font-family: Arial, Helvetica, sans-serif; font-size: 16px">
          <th style="vertical-align: bottom; text-align: left; word-wrap: break-word">
            <b>Table 2: Fee Offset Claims and Sources</b>
          </th>
          <th style="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="font-family: Arial, Helvetica, sans-serif; font-size: 16px; float: center; width: 100%; text-align: center;  border: 1px solid black;">
        <tr style="background-color:#9ADAF6">
          <th style="width: 10%; text-align: left;">
            <!-- BLANK -->
          </th>
          <th style="width: 8%; text-align: left;">
            <!-- BLANK -->
          </th>
          <th style="width: 16%;">
				Registrant or Filer Name
			</th>
          <th style="width: 6%;">
				Form or Filing Type
			</th>
          <th style="width: 7%;">
				File Number
			</th>
          <th style="width: 6%;">
				Initial Filing Date
			</th>
          <th style="width: 6%;">
				Filing Date
			</th>
          <th style="width: 6%;">
				Fee Offset Claimed
			</th>
          <th style="width: 6%;">
				Security Type Associated with Fee Offset Claimed
			</th>
          <th style="width: 8%;">
				Security Title Associated with Fee Offset Claimed
			</th>
          <th style="width: 6%;">
				Unsold Securities Associated with Fee Offset Claimed
			</th>
          <th style="width: 9%;">
				Unsold Aggregate Offering Amount Associated with Fee Offset Claimed
			</th>
          <th style="width: 6%;">
				Fee Paid with Fee Offset Source
			</th>
        </tr>
        <tr>
          <td colspan="14" style="text-align: center">
            <b>Rule 457(p)</b>
          </td>
        </tr>
        <tr style="background-color:#E7E7E2">
          <td style="text-align: left;">
		Fee Offset Claims
	</td>
          <td>
		N/A
	</td>
          <td style="text-align: left;">
		N/A
	</td>
          <td>
		N/A
	</td>
          <td>
		N/A
	</td>
          <td>
		N/A
	</td>
          <td>
		N/A
	</td>
          <td style="text-align: right;">
		N/A
	</td>
          <td style="text-align: left;">
		N/A
	</td>
          <td style="text-align: left;">
		N/A
	</td>
          <td style="text-align: right;">
		N/A
	</td>
          <td style="text-align: right;">
		N/A
	</td>
          <td style="text-align: right;">
		N/A
	</td>
        </tr>
        <tr style="background-color:#E7E7E2">
          <td style="text-align: left;">
		Fee Offset Sources
	</td>
          <td>
		N/A
	</td>
          <td style="text-align: left;">
		N/A
	</td>
          <td>
		N/A
	</td>
          <td>
		N/A
	</td>
          <td>
		N/A
	</td>
          <td>
		N/A
	</td>
          <td style="text-align: right;">
		N/A
	</td>
          <td style="text-align: left;">
		N/A
	</td>
          <td style="text-align: left;">
		N/A
	</td>
          <td style="text-align: right;">
		N/A
	</td>
          <td style="text-align: right;">
		N/A
	</td>
          <td style="text-align: right;">
		N/A
	</td>
        </tr>
      </table>
    </div>
  </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>6
<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.25.3</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>Dec. 16, 2025</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">0001000230<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">OPTICAL CABLE CORP<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>
<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_OfferingTableNa', window );">Offering Table N/A</a></td>
<td class="text"> <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_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_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_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_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>7
<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.25.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Offerings - Offering: 1<br></strong></div></th>
<th class="th">
<div>Dec. 16, 2025 </div>
<div>USD ($) </div>
<div>shares</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_OfferingTable', window );"><strong>Offering:</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_PrevslyPdFlg', window );">Fee Previously Paid</a></td>
<td class="text">false<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_FeesOthrRuleFlg', window );">Other Rule</a></td>
<td class="text">true<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_OfferingSctyTp', window );">Security Type</a></td>
<td class="text">Equity<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_OfferingSctyTitl', window );">Security Class Title</a></td>
<td class="text">Common Stock<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_AmtSctiesRegd', window );">Amount Registered | shares</a></td>
<td class="nump">1,200,000<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_MaxOfferingPricPerScty', window );">Proposed Maximum Offering Price per Unit</a></td>
<td class="nump">8.705<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_MaxAggtOfferingPric', window );">Maximum Aggregate Offering Price</a></td>
<td class="nump">$ 10,446,000.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_FeeRate', window );">Fee Rate</a></td>
<td class="nump">0.01381%<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_FeeAmt', window );">Amount of Registration Fee</a></td>
<td class="nump">$ 1,442.59<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_OfferingNote', window );">Offering Note</a></td>
<td class="text">(1)  Pursuant to Rule 416(a) under the Securities Act of 1933, as amended (the "Securities Act"), this Registration Statement shall also cover any additional shares of common stock of Optical Cable Corporation Inc. (the "Company") that become issuable under the Optical Cable Corporation 2017 Stock Incentive Plan, as amended (the "2017 Plan") set forth herein by reason of any stock dividend, stock split, recapitalization, or other similar transaction effected that results in an increase to the number of outstanding shares of the Company's common stock.
(2) Represents shares of common stock, no par value, of the Registrant issuable pursuant to the 2017 Plan.
(3)  Estimated in accordance with Rule 457(h) under the Securities Act solely for the purpose of calculating the registration fee on the basis of $8.705, the average of the high and low prices of the Company's common shares as reported on The NASDAQ Global Market on December 15, 2025.
<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>8
<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.25.3</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>Dec. 16, 2025 </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">$ 10,446,000.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">1,442.59<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">$ 1,442.59<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_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>9
<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>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>12
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.3</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>2</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="ex_899220.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="ex_899220.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="ex_899220.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="ex_899220.htm">ex_899220.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="3">http://xbrl.sec.gov/dei/2025</BaseTaxonomy>
    <BaseTaxonomy items="20">http://xbrl.sec.gov/ffd/2025</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>false</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>14
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "ex_899220.htm": {
   "dts": {
    "inline": {
     "local": [
      "ex_899220.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/2025/dei-2025.xsd",
      "https://xbrl.sec.gov/ffd/2025/ffd-2025.xsd"
     ]
    }
   },
   "keyStandard": 21,
   "keyCustom": 0,
   "axisStandard": 1,
   "axisCustom": 0,
   "memberStandard": 1,
   "memberCustom": 0,
   "hidden": {
    "total": 8,
    "http://xbrl.sec.gov/ffd/2025": 6,
    "http://xbrl.sec.gov/dei/2025": 2
   },
   "contextCount": 2,
   "entityCount": 1,
   "segmentCount": 1,
   "elementCount": 107,
   "unitCount": 3,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/ffd/2025": 20,
    "http://xbrl.sec.gov/dei/2025": 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": "ex_899220.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": "ex_899220.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": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ex_899220.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "rc",
      "name": "ffd:TtlOfferingAmt",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ex_899220.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "ffd_AggtRedRpPricFsclYr": {
     "xbrltype": "nonNegative1TMonetary2ItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "localname": "CombinedProspectusTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "localname": "OfferingLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Offering [Line Items]",
        "terseLabel": "Offering:"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_OfferingNote": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "localname": "OfferingTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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": "nonNegativeIntegerItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "localname": "OffsetTableNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "localname": "Securities424iNa",
     "presentation": [
      "http://xbrl.sec.gov/ffd/role/document/submissionTable"
     ],
     "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/2025",
     "localname": "SubmissionLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Submission [Line Items]",
        "terseLabel": "Items"
       }
      }
     },
     "auth_ref": []
    },
    "ffd_SubmissnTp": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/ffd/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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/2025",
     "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>15
<FILENAME>0001437749-25-038237-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001437749-25-038237-xbrl.zip
M4$L#!!0    ( ,EKDEO.\/@--@L  ",_   -    97A?.#DY,C(P+FAT;>T;
M:W/:2/)S_"OFM)M+7(4,PD^PS1;!]IXK#O$9IRK?K@9I@*GH=3.##?OKKWLD
MH0?B96/'6Y>D$H.FI]_3W=-JG_TQ\5SRP(3D@7_^P=JK?2#,MP.'^\/S#^U>
MY_KZPQ^MG;.1 C  ]>6Y,5(J;%:KCX^/>X_[>X$85JU&HU&=((P1 34G+O=_
M+ ;%U1EH7[@\!XI/-'"]5MNO<E\JZMLL"^^D&[+ 1]5H,0'E,CBH6\?+D$<0
MLPV31; 6,@)LL^^?[FY2<%4.GX)6E:"^' 3"HPI4C)@.S5K=K!]ED)B2V3E$
M\'UO&#RLQ'-B[EL)GCF-YR7%Y3Z5J1HE+[,/P%K5[U]N>O:(>=0L*M]A!<TG
MG,("[*T?)H"#@5,." L18&N'D+,1HPY^@(^**Y>U+K^;5]<WU]T_R=7E9>^L
M&CU%T&H">]8/G&F\R>$/1*JIR\X-A\O0I=,F\0.?&=$Z0/!)$S<RD3R)GW''
M87[Z+'H*6[MCCPEN$Y]Z@!2X;5Z!TN]#@]B!K]A$W;'!N2%L@W"0D$\>3.OH
MQ&CUS).S:@[#6KA[X[['I?27XV\\&?\58Y>3$>]SM93"<<V8T_QFQ,#^S4L?
MK#7M,!]\U;WV'3;YS*;+J%I&JP;^!O_J^[6G4[QC0R[Q?*@NK"PC6#=:7V_O
MKSOM&])I?[JY))VO=[=/T>O7P0">^,-[VG=9EY;3C'Q,V'/ </::/G?/#27&
MX*I/9$ RM2[Y#&BK6VT_A>"M8 _2G=XZ5^XP3R\8#(3['XA#471"7:MF/PA<
M1OT!=3'DI!: <P\^*8D*2)^16\J=A<SHA>(Y1?X$ WU"EF(RQSE&N*;4<0OX
M(CK)-$<"6<1 )!=%(OQ@XH>]B72,>)^:AB"XY%[H,J-:8*J,@8@Q&8Q%D2^=
MX)JQQK0JP$)9B!D,T^Z<7YHM<@>7!YP)HH5DI1FC<_TY?ZB*FPN$JXLIQW1#
ML$K@+& *LH-0%U2Q%BK0M.H0K1*<Z5KY7N8["W8F*Z6LSO.3K,0J7J'\Q%W?
MB 525;*A!R#%U7C=X=HEG2_,ZP-]AP.LKMERX:@]X=*8QX")$J(EUA+=H&6=
M53/?YLE5Y^G-L5Q=PO/_B4^-?1XYU+?>1;DS>8S*L6"MN,AL F""-EDJH8AX
MEY$+8=]R>K%,\'$+Y'HC"F%M'8)20VY,,HZHA<@9!?],X09.RQ_2JF\&IS"O
M)37@(W?4J$D:C?>GD(U\90ZHQUVH"=N"4[="_L7<!Z:X32M$0CD-=;?@@QA4
M\K]8D]1KH3HE:'*3NGSH-XD-?LS$:48#9RIW(,Z4 _G0E2&%TWA@)+R$U,%;
ME-D/E J\)MD[9%Y1C>&<&_=;'>K:8U=7^208D"L.!W5((&D2G<)!P?VB$X=Y
M+2LGJ]TLLR6<+^*VOB:[\_'CJ74T7#U6U;F11']#^3<O5N&"MV&Q^CSEP&=T
MK]+#MDA)<%@FZ<'('\6!&U U.STD/IF0%-_GCY?+!G#@2/YXS9 \Z0Q;1^'$
MR-MYE&!\8 +WN@GY2)32$Y_PW$"6'P/AF(^"AK!%,/K#Q =S_I%0\:@8<L"T
M1C"9.9(^W<1JDBY[=*<D\A,H,QW28_98<,77.ONC-<P[9ZLGJQD>E-JY431S
ML@X*%Q#387<X(3)PN4/Z+K5_G))(9R;Z0Y/0L0IFCP0?CI)GY7[2!PQ#$8Q]
MQX1('(CF;XWV1?OJ:)$7Q%S6WQ<M<?8/TR2?;MK=S\0T%VNV#)E5F\?V+(>(
MS3XE]U"(;6;YU^6OXU(IR3UV:M8)0*_-)Z;.;%*]&[MO49UM#_Q79<[]%G@\
MW#*/MR(( PDAZ0N=<&_LD>3B06XA&<%]'JXFWZ"Z>X.L)QRWAT/!AG 3*/#^
M?);W7\!O[X#1-ZC,V%>A/$W*&7VR@..G9Z@5 ?WR&/[6"P%]5KZ5\_WNG;7S
M+E_R+-REZY"BDE:U_WJVFA9+VED[+*WD@.W+_XXA5"YKO+TTFQ">5S*Z;[0Z
M@>>!*7LJL'\\G]UR'UK6KI9?U4A@B-ZHSZ@;J1E!#J!V5B,FGB^!+CX6"' E
MJ*T=/Y6@[2G0-I1J<# <@^!55S,?7Z.)PVSN45>>&[6\(/[8<P(5+Z\TU*'1
MLBIP8:K4:K/&><+-UH3$&VWK][.J_KFF_!!F$Z_#L H) 9TOHPCLEF2T<-V]
M>HX>H,([V3NN';XU'4"645D]O)@"CL$1:I6#@R/TA+T7=(:%TL*9Q2R5D5!W
MJ+8GXHG10LEJUOZ)]:;L#)+#<7\QTS;PC!\<U/<.&^N+O;+?,>M4'1J+[L0J
M"#>O%K1:C=9]H*B;EE91H2";2]L0FK'U[V&+C%PB1MIW."JK@%#7)8>5&>M*
M6ZR,%GO1,C^Z5^ZL@8_^5&P)K>]1>4^<N9)5VR!*K.@9O:2QHM[ K+V$+8*X
M.;#2C-KOD@/YVM9+Z&[?<-9Z,>"Y3= 7#@I0B,.?*#3@K29Z(RV;^OE+>MO/
MV+F1 F>N&ZGDIWAOAO3V';@>)>^_O?-VF=*N>S%FO]Q6VQ<T\E/B;8;N]MUU
M?^OQ=ME[E1E,Z4M,;*%GF^(E/?'HD58U]W'  )4_R3?)TVFYY,D67J^<DK($
M7G24HC^6'#OTE8RK1&^#8AF3.N P+](,5[\UJS.[04F?;,Y*\XZOF:P6+"ER
MELSJ;]LOR;9LZM<Q;"981/Q;:,15\;7,T"4A81PN"$3(!HZLF".F]6'506DI
M\\##Q,#1%L"P:36;9I#C62Q['''%3'AJ@V)"P4RDO7'C#=W2($S:%*?)K%57
M/NO :'VT=@FY'0LYIK[",3GLA9$#Z^@CW86P!?4Q42.6>2=(VK;NQ%J-_?T*
MH9( %P#FD(\(9^0!C=T*;.<RW[?M*;C XR /D2/JN@1": "L@@4(]:<$'1KA
MH'J+9CR0G!WU"27V"?'[UU!;BW2T?W<"$08Q]FO?WHN9Z00>Z'EJ[ (35)$^
M RR,< G"XJY4O,78ZC7K..I.(F*<,7I@Y-:E?HGL&A;7@""4.)@0U(B,F&#<
M)_TI$8S*:,H"Q8Q$@9.,HUI.)?XN0Y>K"H""#3D4:OPOS4>%!(($V&(DDL,Y
MH\ W3FC'Z8J! ]@*&-%R@LK&KI($J%(?_K>1,$/C(IN0FG"D"[@(Q@K'K3%\
M9#2-,+'B/LB<WO=V/M9WP93@GQ(T(1>8IT+\@(3 X0-UQZR2X$PG$5(+A!G'
M0YB9!H'4/CCFI5200%$PE,6VX<*&X^%P/P/%1IYZ>/QQM,139> R=XJFT*M
M$-\H:9:3=W0@/2Z)K(L.H/:"'_B\3R77,OZN6W\5_9""L](A2V0;08P 73O$
M#1[A^,*=?HDJ(Z6!]P@&;H;"P=-[ .VV>Q?M?Y,_W: /OOB%BA_@1+!VP>QH
M#,\"ZGIR=&?M1O/ZY>QQ,=J,1#'N0@@LQM1L&JD9Q=3V:_ACU?!'Q-):XQ[)
MS$:]F;G5XMMP[DGM?+UHIJU0F"QY7[>(P5)V2FKLTK9F@AQ_R\3D$S,:J6Z2
M!?/A__RM<7QP> JIB[1#"'XV+LP7Z6]FU&3>JU;.FFQUB,0J=>KMS96<O"SZ
MN*6&5]I,0H#H?,5=B' XI+:CK[NK$*5X<- OQH"Q',=7UD-QG*( XJ2K$^.F
MU*_A:L>QT111QZ'?C05XQM9"(&#.IAAR8S^D+65@<YUQ=8Y]*OZ3$OQZ8&=;
M!%(!OOEPUIQ<WM\2C4:11LDP1SR:L'VQ$ /^OLH<OBC*SZ-;/]-;Z=3P?!R;
MSSJS.BO<G4\MRTJ-;4Q7).%GWM5EZ:P%0G:K[8WG,!;O>NVUI2\1MRW<]G8]
MD<47V?9ZGAB77+]<\9<KKG;%\FL/Q%3=\CNKXF^TM_X'4$L! A0#%     @
MR6N26\[P^ TV"P  (S\   T              ( !     &5X7S@Y.3(R,"YH
8=&U02P4&      $  0 [    80L

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>ex_899220_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/2025"
  xmlns:ffd="http://xbrl.sec.gov/ffd/2025"
  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/2025/ffd-2025.xsd"
      xlink:type="simple"/>
    <context id="rc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001000230</identifier>
        </entity>
        <period>
            <startDate>2025-12-16</startDate>
            <endDate>2025-12-16</endDate>
        </period>
    </context>
    <context id="offrl_1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001000230</identifier>
            <segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                    <dei:lineNo>1</dei:lineNo>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-12-16</startDate>
            <endDate>2025-12-16</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-168">S-8</ffd:FormTp>
    <ffd:SubmissnTp contextRef="rc" id="ixv-169">S-8</ffd:SubmissnTp>
    <ffd:FeeExhibitTp contextRef="rc" id="ixv-170">EX-FILING FEES</ffd:FeeExhibitTp>
    <dei:EntityCentralIndexKey contextRef="rc" id="ixv-171">0001000230</dei:EntityCentralIndexKey>
    <dei:EntityRegistrantName contextRef="rc" id="ixv-172">OPTICAL CABLE CORP</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-175">false</ffd:PrevslyPdFlg>
    <ffd:FormTp contextRef="rc" id="ixv-200">S-8</ffd:FormTp>
    <dei:EntityRegistrantName contextRef="rc" id="ixv-201">OPTICAL CABLE CORP</dei:EntityRegistrantName>
    <ffd:OfferingSctyTp contextRef="offrl_1" id="ixv-202">Equity</ffd:OfferingSctyTp>
    <ffd:OfferingSctyTitl contextRef="offrl_1" id="ixv-203">Common Stock</ffd:OfferingSctyTitl>
    <ffd:FeesOthrRuleFlg contextRef="offrl_1" id="ixv-204">true</ffd:FeesOthrRuleFlg>
    <ffd:AmtSctiesRegd
      contextRef="offrl_1"
      decimals="0"
      id="ixv-205"
      unitRef="Shares">1200000</ffd:AmtSctiesRegd>
    <ffd:MaxOfferingPricPerScty
      contextRef="offrl_1"
      decimals="INF"
      id="ixv-206"
      unitRef="USD">8.705</ffd:MaxOfferingPricPerScty>
    <ffd:MaxAggtOfferingPric
      contextRef="offrl_1"
      decimals="INF"
      id="ixv-207"
      unitRef="USD">10446000.00</ffd:MaxAggtOfferingPric>
    <ffd:FeeRate
      contextRef="offrl_1"
      decimals="INF"
      id="ixv-208"
      unitRef="pure">0.0001381</ffd:FeeRate>
    <ffd:FeeAmt
      contextRef="offrl_1"
      decimals="INF"
      id="ixv-209"
      unitRef="USD">1442.59</ffd:FeeAmt>
    <ffd:TtlOfferingAmt contextRef="rc" decimals="INF" id="ixv-210" unitRef="USD">10446000.00</ffd:TtlOfferingAmt>
    <ffd:TtlFeeAmt contextRef="rc" decimals="INF" id="ixv-211" unitRef="USD">1442.59</ffd:TtlFeeAmt>
    <ffd:TtlOffsetAmt contextRef="rc" decimals="INF" id="ixv-212" unitRef="USD">0.00</ffd:TtlOffsetAmt>
    <ffd:NetFeeAmt contextRef="rc" decimals="INF" id="ixv-213" unitRef="USD">1442.59</ffd:NetFeeAmt>
    <ffd:OfferingNote contextRef="offrl_1" id="ixv-214">(1)  Pursuant to Rule 416(a) under the Securities Act of 1933, as amended (the "Securities Act"), this Registration Statement shall also cover any additional shares of common stock of Optical Cable Corporation Inc. (the "Company") that become issuable under the Optical Cable Corporation 2017 Stock Incentive Plan, as amended (the "2017 Plan") set forth herein by reason of any stock dividend, stock split, recapitalization, or other similar transaction effected that results in an increase to the number of outstanding shares of the Company's common stock.
(2) Represents shares of common stock, no par value, of the Registrant issuable pursuant to the 2017 Plan.
(3)  Estimated in accordance with Rule 457(h) under the Securities Act solely for the purpose of calculating the registration fee on the basis of $8.705, the average of the high and low prices of the Company's common shares as reported on The NASDAQ Global Market on December 15, 2025.
</ffd:OfferingNote>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
