/*------------------------------
マイポータル修理申込_追加CSS
------------------------------*/

/*------------------------------
共通
------------------------------*/
/* ステップチャート */
.stepchart {
    position: relative;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0px auto 40px;
    font-size: 14px;
    width: 85%;
}

    .stepchart li {
        position: relative;
        list-style-type: none;
        text-align: center;
        text-transform: uppercase;
        width: 20%;
        color: #999999;
        font-weight: bold;
    }

        .stepchart li:before {
            display: block;
            width: 18px;
            height: 18px;
            margin: 7px auto 20px auto;
            content: '';
            text-align: center;
            border-radius: 50%;
            background-color: #F5F5F5;
        }

        .stepchart li:after {
            position: absolute;
            z-index: -1;
            top: 15px;
            left: -50%;
            width: 100%;
            height: 2px;
            content: '';
            background-color: #F5F5F5;
        }

        .stepchart li:first-child:after {
            content: none;
        }

        .stepchart li.active,
        .stepchart li.complete {
            color: #0039ac;
        }

            .stepchart li.active:before,
            .stepchart li.complete:before {
                background-color: #0039ac;
            }

            .stepchart li.active:after,
            .stepchart li.complete:after {
                background-color: #0039ac;
            }

@media screen and (max-width: 639px) {
    .stepchart {
        width: 100%;
        font-size: 12px;
        margin-bottom: 20px;
    }
}

/* 入力フォーム */
.mod-flex-form {
    width: 100%;
    margin-bottom: 30px;
    font-size: 14px;
    line-height: 28px;
    line-height: 1.75;
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
}

    .mod-flex-form input {
        margin: 3px 0;
    }

        .mod-flex-form input[type=checkbox] {
            margin: 0;
        }

    .mod-flex-form .form-row {
        width: 100%;
        display: flex;
    }

    .mod-flex-form .form-header.valign-middle,
    .mod-flex-form .form-data.valign-middle {
        display: flex;
        align-items: center;
    }

    .mod-flex-form .form-header {
        padding: 8px 8px;
        font-weight: normal;
        background-color: #e9edf1;
        text-align: left;
        flex-basis: 30%;
    }

    .mod-flex-form .form-data {
        padding: 8px;
        flex-basis: 70%;
    }

        .mod-flex-form .form-data .mod-3002:last-child {
            margin-top: 16px;
            margin-bottom: 0;
        }

    .mod-flex-form .form-row {
        border-bottom: 1px solid #ccc;
    }

    .mod-flex-form .form-header {
        border-right: 1px solid #ccc;
    }

/* 入力項目（テーブル内） */
.form-data.input-item {
    vertical-align: top;
}

    .form-data.input-item ul {
        display: flex;
        align-items: center;
        margin-right: 10px;
    }

    .form-data.input-item div {
        display: inline-block;
    }

    .form-data.input-item ul li {
        list-style: none;
        min-width: 0;
    }

        .form-data.input-item div + div,
        .form-data.input-item ul li + li {
            margin-left: 9px;
        }

@media screen and (max-width: 639px) {

    .form-data.input-item ul,
    .form-data.input-item div {
        margin-left: 0px;
        margin-top: 5px;
    }
}

.mod-flex-form .no-header {
    flex-basis: 100%;
}

.mod-flex-form div.line {
    display: flex;
    flex-wrap: wrap;
}

@media screen and (max-width: 639px) {

    .mod-flex-form .form-row,
    .mod-flex-form .form-header,
    .mod-flex-form .form-data {
        display: block;
        border: none;
        width: 100%;
    }

    .mod-flex-form .form-header,
    .mod-flex-form .form-data {
        border-bottom: 1px solid #ccc;
    }

    .mod-flex-form .form-header {
        text-align: left;
        padding: 12px 10px;
        font-weight: bold;
    }

    .mod-flex-form .form-data {
        text-align: left;
        padding: 12px 13px;
    }
}

select:disabled, input[type="text"]:disabled {
    background: #eee;
    color: #5f5f5f;
    opacity: 1;
}

/* アコーディオン（スマホ） */
@media screen and (max-width: 639px) {
    .mod-2009ex {
        font-size: 16px;
        line-height: 1.5;
        padding: 10px 17px;
        border: 1px solid #ddd;
        border-top: 2px solid #0d2ea0;
        font-weight: bold;
        padding: 8px 14px;
        font-size: 16px;
    }

    .mod-a007ex {
        margin-bottom: 60px;
    }

        .mod-a007ex .hdg .mod-2009ex {
            position: relative;
            display: block;
            cursor: pointer;
            padding-right: 35px;
        }

            .mod-a007ex .hdg .mod-2009ex:before,
            .mod-a007ex .hdg .mod-2009ex:after {
                content: '';
                position: absolute;
                top: 50%;
                left: auto;
                right: 10px;
                -webkit-transform: translateY(-50%);
                -ms-transform: translateY(-50%);
                transform: translateY(-50%);
                display: block;
                width: 15px;
                border-top: 2px solid #222;
            }

            .mod-a007ex .hdg .mod-2009ex:after {
                -webkit-transform: translateY(-50%) rotate(90deg);
                -ms-transform: translateY(-50%) rotate(90deg);
                transform: translateY(-50%) rotate(90deg);
            }

        .mod-a007ex .contents {
            overflow: hidden;
            -webkit-transition: height .1s ease-out;
            transition: height .1s ease-out;
            display: none;
        }

        .mod-a007ex .is-open {
            display: block;
        }

            .mod-a007ex .is-open .mod-2009ex:after {
                display: none;
            }

        .mod-a007ex + .mod-a007ex {
            margin-top: -44px;
        }
}

/* 赤字 */
.textRed {
    color: #ff0000;
}

/*------------------------------
アフターサービスのご案内
------------------------------*/
ul.afterServiceIndex {
    list-style: none;
    display: flex;
}

.afterServiceIndex li {
    margin: 0px 10px;
    font: inherit;
    font-size: 16px;
    text-align: center;
    width: 35%;
}

    .afterServiceIndex li a {
        display: block;
        position: relative;
        padding: 1em;
        border: 1px solid #0039ac;
        color: #333;
        background-color: #f2f4fa;
        text-decoration: none;
        box-shadow: 0 -20px 30px rgba(0, 57, 172, .05) inset;
        border-radius: 5px;
    }

        .afterServiceIndex li a strong {
            color: #f1a355;
        }

        .afterServiceIndex li a::after {
            width: 15px;
            height: 15px;
            margin-top: -7px;
            background-position: -115px 0;
            content: '\f054';
            position: absolute;
            top: 45%;
            right: 10px;
            color: #0d2ea0;
            font-size: 12px;
            font-size: 0.75rem;
            line-height: 22px;
            font-family: 'fontAwesome';
            text-decoration: none !important;
        }

@media screen and (max-width: 639px) {
    ul.afterServiceIndex {
        display: inline;
    }

    .afterServiceIndex li {
        margin: 0;
        margin-bottom: 1em;
        font-size: 14px;
        width: 100%;
    }
}

/*------------------------------
Step1_料金と申込方法
------------------------------*/

/* 製品名 */
.modelName {
    font-size: 20px;
    font-weight: bold;
    color: #FF6600;
    margin-left: 5px;
}

/* 料金＋送料 */
ul.price {
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    white-space: nowrap;
    list-style: none;
    display: flex;
    margin-bottom: 20px;
}

    ul.price li {
        padding: 15px 20px;
        background-color: #f2f4fa;
        border: 0.5px solid #c5d0da;
        vertical-align: middle;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }

    ul.price .hyphen {
        width: 6%;
        font-size: 20px;
        background-color: transparent;
        border: none;
    }

@media screen and (max-width: 639px) {
    ul.price {
        font-weight: 600;
        display: table;
        width: 100%;
    }

        ul.price li {
            padding: 0.5em 0.3em;
            display: table-cell;
        }

        ul.price .repaire {
            width: 42%;
        }

        ul.price .hyphen {
            font-size: 12px;
        }

        ul.price .shipping {
            width: 52%;
        }
}

/* 支払方法 */
.paymentMethod {
    font-size: 18px;
    font-weight: 700;
    margin-left: 5px;
}

/* 修理の流れ：矢印 */
.arrow {
    content: "";
    display: block;
    width: 0;
    height: 0;
    margin: 0 auto 0.3em;
    border: 25px solid transparent;
    border-top-color: #ccc;
    border-top-width: 15px;
    border-bottom-width: 0;
}

@media screen and (max-width: 639px) {
    .arrow {
        border: 15px solid transparent;
        border-top-color: #ccc;
        border-top-width: 12px;
        border-bottom-width: 0;
    }
}

/*------------------------------
Step3_申込内容入力
------------------------------*/
/* 必須入力マーク */
span.require {
    padding: 0.2em 0.6em;
    color: #fff;
    background-color: rgb(243, 45, 104);
    border-radius: 3px;
    font-size: 80%;
    text-align: right;
    margin-right: 4px;
    font-weight: bold;
}

    span.require::before {
        content: "\5fc5\9808";  /* 必須 */
    }

/* 入力フォーム_テーブル内ボタン */
.form-data.input-item li.btn {
    padding-left: 1em;
    text-align: center;
}

.form-data.input-item .btn input[type="button"] {
    border: 0;
    background-color: #878787;
    font-size: 12px;
    line-height: 1;
    padding: .6em 1em;
    color: #fff;
}

/* 項目ごとのエラーメッセージ */
.form-data span.c-error-txt {
    display: flex;
    flex-wrap: wrap;
}

@media screen and (min-width: 640px) {
    .form-data.input-item .btn input[type="button"]:hover {
        opacity: .7;
    }
}

/* リキャプチャチェック */
.g-recaptcha {
    max-width: 304px;
    margin: 0 auto 20px;
}

/* ご利用注意事項_赤字 */
.textNotesRed {
    color: #e70d55;
}

/*---------------------------------------------
  Modal
---------------------------------------------*/
.modal-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 200;
    pointer-events: none;
    opacity: 0;
    transition: opacity .5s cubic-bezier(0.2, 1, 0.2, 1);
}

    .modal-wrap.is-open {
        pointer-events: auto;
        opacity: 1;
        background-color: rgba(0,0,0,0.25);
    }

    .modal-wrap .modal-inn {
        background: #fff;
        box-shadow: 0px 0px 30px 1px rgba(0,0,0,0.25);
        border-radius: 5px;
        display: inline-block;
        overflow: hidden;
        padding: 30px 30px 20px;
        text-align: center;
        width: 600px;
        opacity: 0;
        transform: translateY(-10px);
        transition: .5s cubic-bezier(0.2, 1, 0.2, 1);
        transition-property: opacity, transform;
    }

    .modal-wrap.is-open .modal-inn {
        opacity: 1;
        transform: translateY(0);
    }

    .modal-wrap .modal-inn i {
        font-size: 36px;
        color: #003247;
    }

    .modal-wrap .modal-inn .txt {
        font-size: 16px;
        font-weight: bold;
    }

    .modal-wrap .modal-inn i + .txt {
        margin-top: 15px;
    }

    .modal-wrap .modal-inn .c-btn {
        border: 1px solid;
        border-radius: 5px;
        font-size: 14px;
        font-weight: bold;
        margin-top: 30px;
        min-width: 180px;
        line-height: 38px;
        padding: 0 10px;
    }

        .modal-wrap .modal-inn .c-btn + .c-btn {
            margin-left: 10px;
        }

    .modal-wrap .modal-inn .red {
        color: #ec0000;
    }

@media screen and (max-width: 639px) {
    .modal-wrap .modal-inn {
        width: 95vw;
    }
}

/*---------------------------------------------
  Button
---------------------------------------------*/
.btn-show {
    display: normal;
}

.btn-hide {
    display: none;
}

/*---------------------------------------------
  エラーメッセージ
---------------------------------------------*/
.c-error-txt {
    color: #ff0000;
}