@charset 'utf-8';

/*------------------------------------------------------------

denki_sim.css

------------------------------------------------------------*/
/*------------------------------------------------------------
	書式設定
------------------------------------------------------------*/
/* テキストの位置 */
.taLeft { text-align: left !important; }
.taCenter { text-align: center !important; }
.taRight { text-align: right !important; }

/* フォントの太さ */
.fwNormal { font-weight: normal !important; }
.fwBold { font-weight: bold !important; }

.vTop { vertical-align: top;}
.vMdl { vertical-align: middle;}
.vBtm { vertical-align: bottom;}

/*------------------------------------------------------------
	余白調整
------------------------------------------------------------*/
.mt0 { margin-top: 0 !important; }
.mt30 { margin-top: 30px !important; }
.mb0 { margin-bottom: 0 !important; }
.mb5 { margin-bottom: 5px !important; }
.mb10 { margin-bottom: 10px !important; }
.mb15 { margin-bottom: 15px !important; }
.mb20 { margin-bottom: 20px !important; }
.mb25 { margin-bottom: 25px !important; }
.mb30 { margin-bottom: 30px !important; }
.mb35 { margin-bottom: 35px !important; }
.mb40 { margin-bottom: 40px !important; }
.mb45 { margin-bottom: 45px !important; }
.mb50 { margin-bottom: 50px !important; }
.pt0 { padding-top: 0 !important; }

/*------------------------------------------------------------
	その他
------------------------------------------------------------*/
.wdt50 { width: 50px}
.wdt80 { width: 80px}
.wdt100 { width: 100px}
.wdt120 { width: 120px}
.wdt150 { width: 150px}

.mr50 {margin-right: 50px}


body {
    background: gray;
    color: #333;
    font-size: 100%;
    line-height: 1.4;
}

.container {
    margin: 0 auto;
    padding: 30px 40px 30px 40px;
    min-height: 740px;
    width: 640px;
    border: 1px white solid;
    border-radius: 8px;
    background: white;
}

.box {
    margin-top: 20px;
    padding: 20px 40px 20px 40px;
    border: 1px gray solid;
    border-radius: 5px;
}

.title {
    padding: 10px 20px 7px 20px;
    border: 1px #f60 solid;
    border-radius: 5px;
    background: #f60;
    color: white;
    font-weight: bold;
    font-size: 120%;
}

.input {
    margin: 0 5px 0 5px;
    padding: 6px 10px 5px 5px;
    width: 160px;
    border: 1px gray solid;
    border-radius: 3px;
    background: #ffead5;
    color: #804000;
    font-size: 100%;
}

.input_c {
    margin: 5px 10px 10px 0;
    padding: 6px 10px 5px 5px;
    width: 100px;
    border: 1px gray solid;
    border-radius: 3px;
    background: #ffead5;
    color: #804000;
    font-size: 100%;
}

.title-sub {
    margin: 0 0 0 20px;
    padding: 2px 15px 0 15px;
    border: 1px white solid;
    border-radius: 20px;
    background: white;
    color: #f60;
    vertical-align: middle;
    font-weight: normal;
    font-size: 80%;
}

.button input {
    margin: 0 5px 0 0;
    padding: 6px 10px 5px 10px;
    width: 120px;
    border: 1px #f66 solid;
    border-radius: 3px;
    background: #f66;
    box-shadow: 2px 2px 1px #757575;
    color: white;
    font-size: 100%;
}

.button input:hover {
    border: 1px #c66 solid;
    background: #c66;
    color: #fff;
}

.button input:active {
    position: relative;
    top: 2px;
    border: 1px #f96 solid;
    background: #f96;
    box-shadow: none;
    color: #fff;
}

.button_l a {
    margin: 0 5px 0 0;
    padding: 6px 20px 5px 20px;
    width: 1700px;
    border: 1px #f66 solid;
    border-radius: 3px;
    background: #f66;
    box-shadow: 2px 2px 1px #757575;
    color: white;
    text-decoration: none;
    font-size: 100%;
}

.button_l a:hover {
    border: 1px #c66 solid;
    background: #c66;
    color: #fff;
}

.button_l a:active {
    position: relative;
    top: 2px;
    border: 1px #f96 solid;
    background: #f96;
    box-shadow: none;
    color: #fff;
}

.button_b input {
    margin: 0 5px 0 0;
    padding: 6px 10px 5px 10px;
    width: 120px;
    border: 1px #aaa solid;
    border-radius: 3px;
    background: #aaa;
    box-shadow: 2px 2px 1px #757575;
    color: white;
    font-size: 100%;
}

.button_b input:hover {
    border: 1px #7f7f7f solid;
    background: #7f7f7f;
    color: #fff;
}

.button_b input:active {
    position: relative;
    top: 2px;
    border: 1px #b4b4b4 solid;
    background: #b4b4b4;
    box-shadow: none;
    color: #fff;
}

.title_kekka {
    margin: 0 0 0 -10px;
    padding: 7px 20px 5px 20px;
    border: 1px white solid;
    border-radius: 5px;
    background: #f60;
    color: white;
    vertical-align: middle;
    font-weight: bold;
    font-size: 100%;
}

.output {
    margin: 0 5px 0 5px;
    padding: 6px 10px 5px 5px;
    width: 160px;
    border: 1px white solid;
    border-radius: 3px;
    background: #ffead5;
    color: black;
    text-align: center;
    font-weight: bold;
    font-size: 110%;
}

.grayBox {
    padding: 5px 20px 5px 20px;
    background: #f5f5f5;
    font-size: 80%;
}

.grayBox li {
    font-size: 90%;
}

.soutei {
    margin: 0 0 0 0;
    padding: 6px 0 5px 0;
    border: 1px #d3d3d3 solid;
    border-radius: 3px;
    background: #f5f5f5;
    color: #151515;
    text-align: center;
    font-size: 100%;
}

td {
    padding: 0 10px 0 0;
    text-align: center;
}

.link_btn a {
    display: inline-block;
    margin: 0 auto;
    padding: 12px 30px;
    border: 1px #aaa solid;
    border-radius: 3px;
    background: #aaa;
    box-shadow: 2px 2px 1px #757575;
    color: white;
    text-decoration: none;
    font-size: 100%;
    min-width: 200px;
}

.link_btn a:hover {
    border: 1px #7f7f7f solid;
    background: #7f7f7f;
    color: #fff;
}

.link_btn a:active {
    position: relative;
    top: 2px;
    border: 1px #b4b4b4 solid;
    background: #b4b4b4;
    box-shadow: none;
    color: #fff;
}

.simulation {
    margin: 30px 0 20px;
    text-align: center;
    font-weight: bold;
    font-size: 120%;
}

.simulation::after {
    content: "";
    display: block;
    width: 120px;
    height: 30px;
    margin: 5px auto 0;
    background: url(../image/arrow_down_org.svg) no-repeat;
    background-size: cover;
    background-position: center;
}

.simulation__message {
    margin: 0;
    color: #151515;
    font-size: 110%;
}

.contact {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
    gap: 16px;
}

.contact__phone,
.contact__web {
    flex: 1;
    padding: 20px;
    border: 2px solid #f60;
    border-radius: 6px;
    background: #ff66000f;
}

.contact__phone-title,
.contact__web-title {
    margin: 0 0 15px;
    color: #151515;
    text-align: center;
    font-weight: bold;
    font-size: 120%;
}

.contact__phone-number a::before {
    content: "";
    display: inline-block;
    margin-right: 0px;
    width: 28px;
    height: 28px;
    background: url(../image/phone_org.svg) no-repeat;
    background-size: contain;
    vertical-align: middle;
    padding-bottom: 3px;
}

.contact__phone-number {
    text-align: center;
}

.contact__phone-number a {
    color: #f60;
    font-weight: bold;
    font-size: 170%;
    text-decoration: none;
    font-family: Inter;
}

.contact__phone-hours {
    color: #151515;
    text-align: center;
    font-size: 90%;
}

.contact__web-note {
    margin: 0 0 15px;
    color: #151515;
    text-align: center;
    font-size: 90%;
}

.contact__web-button {
    display: block;
    padding: 10px;
    width: 100%;
    border-radius: 6px;
    background: #f60;
    box-shadow: 2px 2px 1px #757575;
    color: white;
    font-size: 100%;
    cursor: pointer;
    font-weight: bold;
    border: none;
}
.contact__web a {
    text-decoration: none;
}

.contact__web-button:hover {
}

.contact__web-button:active {
    position: relative;
    top: 2px;
    border-color: #b4b4b4;
    background: #b4b4b4;
    box-shadow: none;
}

/* メディアクエリ：640px以下の場合のスタイル */
@media screen and (max-width: 640px) {
    .container {
        padding: 15px 20px;
        min-height: auto;
        width: 90%;
    }

    .box {
        margin-top: 15px;
        padding: 15px 20px;
    }

    .input,
    .input_c {
        margin: 5px 0;
        width: 100%;
    }

    .button input,
    .button_b input {
        margin: 5px 0;
        width: 100%;
    }

    .button_l a {
        display: block;
        margin: 5px 0;
        padding: 6px 10px;
        width: 100%;
    }

    td {
        display: block;
        padding: 5px 0;
        width: 100%;
    }

    .title {
        padding: 8px 15px 6px;
        font-size: 110%;
    }

    .title-sub {
        display: block;
        margin: 5px 0;
        text-align: center;
    }

    table {
        display: table;
        margin-bottom: 15px;
        width: 100%;
    }

    table tbody {
        display: table-row-group;
    }

    table tr {
        display: table-row;
    }

    table td {
        display: table-cell;
        padding: 5px 2px;
        width: 16.66%;

        /* 6列で均等に分割 */
        font-size: 90%;
    }

    .soutei {
        min-width: 40px;
        width: 100%;
        font-size: 90%;
    }

    /* ボタンのスタイルを修正 */
    .button_l {
        margin: 0 0 20px 0;
        width: 100%;
    }

    .button_l a {
        display: block;
        box-sizing: border-box;
        margin: 0;
        padding: 10px;
        width: auto;
        text-align: center;
        word-break: break-word;
        /* 長い文字列を適切に折り返す */
    }

    /* フッターのリンクスタイルを修正 */
    .link_btn {
        display: block;
        margin: 0 0 10px 0;
    }

    .link_btn a {
        display: block;
        box-sizing: border-box;

        /* パディングを幅に含める */
        margin: 0;

        /* マージンをリセット */
        width: auto;

        /* 固定幅を解除 */
        text-align: center;
    }

    /* 最後のリンクの下マージンを削除 */
    .link_btn:last-child {
        margin-bottom: 0;
    }

    .input,
    .input_c {
        box-sizing: border-box;

        /* パディングとボーダーを幅に含める */
        margin: 5px 0;
        width: 100%;
    }

    /* 契約容量の入力欄用の追加スタイル */
    input[type='number'].input {
        box-sizing: border-box;
        width: 100%;
    }

    .simulation {
        margin: 0;
        padding: 0 15px 15px;
    }

    .simulation br {
        display: none;
    }

    .simulation__message {
        font-size: 100%;
    }

    .contact {
        flex-direction: column;
        gap: 16px;
    }

    .contact__phone,
    .contact__web {
        padding: 15px;
    }
}