<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2026"
  xmlns:ffd="http://xbrl.sec.gov/ffd/2026"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef
      xlink:href="https://xbrl.sec.gov/ffd/2026/ffd-2026.xsd"
      xlink:type="simple"/>
    <context id="rc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001746109</identifier>
        </entity>
        <period>
            <startDate>2026-07-15</startDate>
            <endDate>2026-07-15</endDate>
        </period>
    </context>
    <context id="offrl_1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001746109</identifier>
            <segment>
                <xbrldi:typedMember dimension="ffd:OfferingAxis">
                    <dei:lineNo>1</dei:lineNo>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-07-15</startDate>
            <endDate>2026-07-15</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-330">S-4</ffd:FormTp>
    <ffd:SubmissnTp contextRef="rc" id="ixv-331">S-4</ffd:SubmissnTp>
    <ffd:FeeExhibitTp contextRef="rc" id="ixv-332">EX-FILING FEES</ffd:FeeExhibitTp>
    <dei:EntityCentralIndexKey contextRef="rc" id="ixv-333">0001746109</dei:EntityCentralIndexKey>
    <dei:EntityRegistrantName contextRef="rc" id="ixv-334">Bank First Corp</dei:EntityRegistrantName>
    <ffd:OfferingTableNa contextRef="rc" id="hiddenrcOfferingTableNa" xsi:nil="true"/>
    <ffd:OffsetTableNa contextRef="rc" id="hiddenrcOffsetTableNa">N/A</ffd:OffsetTableNa>
    <ffd:CombinedProspectusTableNa contextRef="rc" id="hiddenrcCombinedProspectusTableNa">N/A</ffd:CombinedProspectusTableNa>
    <ffd:FormTp contextRef="rc" id="ixv-362">S-4</ffd:FormTp>
    <dei:EntityRegistrantName contextRef="rc" id="ixv-363">Bank First Corp</dei:EntityRegistrantName>
    <ffd:PrevslyPdFlg contextRef="offrl_1" id="ixv-364">false</ffd:PrevslyPdFlg>
    <ffd:OfferingSctyTp contextRef="offrl_1" id="ixv-365">Equity</ffd:OfferingSctyTp>
    <ffd:OfferingSctyTitl contextRef="offrl_1" id="ixv-366">Common stock, par value $0.01 per share</ffd:OfferingSctyTitl>
    <ffd:FeesOthrRuleFlg contextRef="offrl_1" id="ixv-367">true</ffd:FeesOthrRuleFlg>
    <ffd:AmtSctiesRegd
      contextRef="offrl_1"
      decimals="0"
      id="ixv-368"
      unitRef="Shares">1402243</ffd:AmtSctiesRegd>
    <ffd:MaxAggtOfferingPric
      contextRef="offrl_1"
      decimals="2"
      id="ixv-369"
      unitRef="USD">201041988.75</ffd:MaxAggtOfferingPric>
    <ffd:FeeRate
      contextRef="offrl_1"
      decimals="7"
      id="ixv-370"
      unitRef="pure">0.0001381</ffd:FeeRate>
    <ffd:FeeAmt
      contextRef="offrl_1"
      decimals="2"
      id="ixv-371"
      unitRef="USD">27763.90</ffd:FeeAmt>
    <ffd:TtlOfferingAmt contextRef="rc" decimals="2" id="ixv-372" unitRef="USD">201041988.75</ffd:TtlOfferingAmt>
    <ffd:TtlFeeAmt contextRef="rc" decimals="2" id="ixv-373" unitRef="USD">27763.90</ffd:TtlFeeAmt>
    <ffd:TtlPrevslyPdAmt contextRef="rc" decimals="2" id="ixv-374" unitRef="USD">0.00</ffd:TtlPrevslyPdAmt>
    <ffd:TtlOffsetAmt contextRef="rc" decimals="2" id="ixv-375" unitRef="USD">0.00</ffd:TtlOffsetAmt>
    <ffd:NetFeeAmt contextRef="rc" decimals="2" id="ixv-376" unitRef="USD">27763.90</ffd:NetFeeAmt>
    <ffd:OfferingNote contextRef="offrl_1" id="ixv-377">1(a). The number of shares of common stock, par value $0.01 per share, of Bank First Corporation ("Bank First" and such shares, the "Bank First common stock") being registered is based on an estimate of (i) the number of shares of common stock, no par value, of PSB Holdings, Inc. ("PSB" and such shares, the "PSB common stock") issued and outstanding as of June 30, 2026 or issuable or expected to be converted or exchanged in connection with the merger of PSB with and into Bank First, collectively equal to 4,041,045, multiplied by (ii) the exchange ratio of 0.3470 of a share of Bank First common stock for each share of PSB common stock. Pursuant to Rule 416, this registration statement also covers additional shares that may be issued as a result of stock splits, stock dividends or similar transactions. In the event the number of shares of common stock required to be issued to consummate the merger described herein is increased after the date this registration statement is declared effective, Bank First will register such additional shares in accordance with Rule 413 under the Securities Act of 1933, as amended (the "Securities Act"), by filing a registration statement pursuant to Rule 462(b) or Rule 429 under the Securities Act, as applicable, with respect to such additional shares.

1(b). Estimated solely for the purpose of calculating the registration fee required by Section 6(b) of the Securities Act, and calculated in accordance with Rules 457(c) and 457(f) promulgated thereunder. The proposed maximum aggregate offering price is (i) $49.75, the average of the high and low prices reported for PSB common stock on the OTC Market Group's OTCQX market on July 14, 2026, which was within five business days prior to the date of filing of this registration statement, multiplied by (ii) 4,041,045, the estimated maximum number of shares of PSB common stock to be exchanged for shares of Bank First common stock in the merger.</ffd:OfferingNote>
</xbrl>
