/* ==================================================
   全体
================================================== */

* {
    box-sizing: border-box;
}


/* ==================================================
   シミュレーター
================================================== */

.simulator {
    width: 100%;
    max-width: 880px;

    margin: 0 auto;
}


/* ==================================================
   説明文
================================================== */

.simulator-lead {
    margin: 0 0 60px;
    font-size: 17px;
    line-height: 1.8;
    text-align: center;
}


/* ==================================================
   WordPressテーマ上書き
================================================== */

main.site-main h2 {
    font-size: 44px;
    text-align: center;
}


.titleg {
    position: relative;
    bottom: auto;
    left: auto;

    margin: 0 0 20px 0;

    padding: 10px 50px;

    z-index: 1000;

    min-width: 460px;

    background: #ffffff;
}


.titleg a {
    text-decoration: underline;
}


/* ==================================================
   メッセージエリア
================================================== */

.simulation-message {
    display: none;

    width: 100%;

    margin: 0 auto 16px;
    padding: 9px 14px;

    border: 2px solid #d00000;
    border-radius: 0;

    background-color: #ffffff;
    color: #d00000;

    font-size: 14px;
    font-weight: bold;

    text-align: left;
    line-height: 1.5;

    scroll-margin-top: 20px;
}


.simulation-message.show {
    display: block;
}


/* ==================================================
   入力エリア
================================================== */

.input-area {
    width: 100%;
    max-width: 760px;

    margin: 0 auto;

    padding: 16px 24px 8px;
}


/* ==================================================
   個数・重量
   到着日・搬出予定日
================================================== */

.input-row-group {
    display: grid;

    grid-template-columns: 1fr 1fr;

    column-gap: 48px;

    margin-bottom: 20px;
}


.input-item {
    display: grid;

    grid-template-columns: 104px 180px;

    align-items: center;

    gap: 12px;
}


.input-item label {
    width: 104px;

    font-size: 17px;
    font-weight: bold;

    white-space: nowrap;
}


/* ==================================================
   入力ボックス
================================================== */

.input-box {
    position: relative;

    width: 180px;
    height: 60px;
}


.input-box input {
    width: 180px;
    height: 60px;

    padding: 3px 45px 3px 10px;

    background-color: #ffffff;
    color: #111111;

    border: 2px solid #999999;
    border-radius: 0;

    font-size: 18px;

    transition: border-color 0.15s ease;
}


/*
 * マウスを乗せたとき
 */
.input-box input:hover {
    border-color: #666666;
}


/*
 * 入力中
 *
 * 枠線そのものだけを濃い青にする。
 */
.input-box input:focus {
    outline: none;

    border-color: #173f52;

    box-shadow: none;
}


/* ==================================================
   単位
================================================== */

.input-box .unit {
    position: absolute;

    top: 50%;
    right: 10px;

    transform: translateY(-50%);

    color: #666666;

    font-size: 14px;

    white-space: nowrap;

    pointer-events: none;
}


/* ==================================================
   日付入力
================================================== */

.date-input-box {
    position: relative;

    width: 180px;
    height: 60px;

    margin: 0;
    padding: 0;
}


/*
 * 画面に表示する日付欄
 */
.date-input-box .date-display-input {
    position: absolute;

    top: 0;
    left: 0;

    width: 180px !important;
    height: 60px !important;

    margin: 0 !important;
    padding: 3px 52px 3px 10px !important;

    box-sizing: border-box;

    background-color: #ffffff;
    color: #111111;

    border: 2px solid #999999;
    border-radius: 0;

    font-size: 18px;

    outline: none;

    z-index: 5;

    transition: border-color 0.15s ease;
}


/*
 * 日付欄 hover
 */
.date-input-box .date-display-input:hover {
    border-color: #666666;
}


/*
 * 日付欄 入力中
 */
.date-input-box .date-display-input:focus {
    border-color: #173f52;

    box-shadow: none;
}


/*
 * 実際の日付値を保持する type="date"
 *
 * PCでは画面上に表示しない。
 */
.date-input-box .date-input {
    position: absolute !important;

    top: 0 !important;
    left: 0 !important;

    width: 1px !important;
    height: 1px !important;

    min-width: 1px !important;
    min-height: 1px !important;

    max-width: 1px !important;
    max-height: 1px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;

    background: transparent !important;
    background-image: none !important;

    color: transparent !important;

    opacity: 0 !important;

    cursor: pointer !important;

    pointer-events: none !important;

    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;

    z-index: 1 !important;
}


/*
 * Edge / Chrome
 *
 * 標準カレンダーアイコンを非表示。
 */
.date-input-box .date-input::-webkit-calendar-picker-indicator {
    display: none !important;

    visibility: hidden !important;

    opacity: 0 !important;

    width: 0 !important;
    height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
}


/*
 * Firefox
 */
@-moz-document url-prefix("") {

    .date-input-box .date-input {
        width: 1px !important;
        height: 1px !important;

        min-width: 1px !important;
        min-height: 1px !important;

        max-width: 1px !important;
        max-height: 1px !important;

        opacity: 0 !important;

        pointer-events: none !important;

        appearance: none !important;
        -moz-appearance: none !important;
    }


    .date-input-box .date-input::-moz-calendar-picker-indicator {
        display: none !important;

        visibility: hidden !important;

        opacity: 0 !important;

        width: 0 !important;
        height: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
    }


    .date-input-box .date-input::-moz-focus-inner {
        border: 0 !important;
    }
}


/*
 * 独自カレンダーボタン
 */
.date-input-box .date-picker-button {
    position: absolute !important;

    top: 0 !important;
    right: 0 !important;

    width: 52px !important;
    height: 60px !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;

    cursor: pointer !important;

    appearance: none !important;
    -webkit-appearance: none !important;

    z-index: 10 !important;
}


/*
 * 独自SVG
 */
.date-input-box .date-picker-button svg {
    display: block;

    width: 24px;
    height: 24px;

    margin: 0;
    padding: 0;

    fill: none;

    stroke: #555555;

    stroke-width: 2;

    stroke-linecap: round;
    stroke-linejoin: round;

    visibility: visible;
    opacity: 1;
}


.date-input-box .date-picker-button svg rect,
.date-input-box .date-picker-button svg line {
    fill: none;

    stroke: #555555;
}


.date-input-box .date-picker-button svg circle {
    fill: #555555;

    stroke: #555555;
}


/*
 * ボタンのフォーカス
 */
.date-input-box .date-picker-button:focus {
    outline: none;
}


/* ==================================================
   特殊保管施設
================================================== */

.special-title {
    margin-top: 32px;
    margin-bottom: 16px;

    font-size: 19px;
    font-weight: bold;
}


.special-row {
    display: grid;

    grid-template-columns: 484px 144px;

    gap: 12px;

    margin-left: 0;

    align-items: center;

    margin-bottom: 11px;
}


.special-row > label {
    width: 484px;

    font-size: 16px;

    white-space: normal;

    overflow: visible;

    line-height: 1.4;
}


.special-row .input-box {
    width: 180px;
    height: 60px;
}


.special-row .input-box input {
    width: 180px;
    height: 60px;

    font-size: 18px;
}


/* ==================================================
   シミュレーションボタン
================================================== */

.button-area {
    display: flex;

    justify-content: center;

    margin-top: 40px;
    margin-bottom: 20px;
}


.simulate-button {
    min-width: 480px;

    padding: 9px 24px;

    height: 64px;

    background-color: #17276c;
    color: #ffffff;

    border: 2px solid #17276c;
    border-radius: 0;

    font-size: 20px;
    font-weight: bold;

    cursor: pointer;

    transition:
        background-color 0.2s,
        transform 0.1s;
}


.simulate-button:hover {
    background-color: #17276c;
}


.simulate-button:active {
    transform: translateY(1px);
}


/* ==================================================
   結果表示エリア
================================================== */

#simulation-result {
    display: none;

    width: 100%;
    max-width: 800px;

    margin: 0 auto;

    background-color: #ffffff;
    color: #333333;

    padding-bottom: 28px;

    scroll-margin-top: 20px;
}


/* ==================================================
   結果：見出し
================================================== */

.result-header {
    min-height: 42px;

    display: flex;

    align-items: center;

    padding: 0 14px;

    background-color: #e5e7eb;
    color: #333333;

    border-top: 1px solid #c7cbd1;
    border-bottom: 1px solid #c7cbd1;

    font-size: 19px;
    font-weight: bold;
}


/* ==================================================
   結果：各行
================================================== */

.result-row {
    min-height: 43px;

    display: flex;

    align-items: center;

    background-color: #ffffff;
    color: #333333;

    border-left: 1px solid #d1d5db;
    border-right: 1px solid #d1d5db;
    border-bottom: 1px solid #d1d5db;
}


.result-label {
    width: 44px;

    padding-left: 14px;

    color: #333333;

    font-size: 17px;

    white-space: nowrap;
}


.result-description {
    flex: 1;

    padding: 6px 8px;

    color: #444444;

    font-size: 16px;

    line-height: 1.35;
}


.result-value {
    width: 136px;

    margin-left: auto;

    padding-right: 14px;

    color: #333333;

    text-align: right;

    font-size: 18px;
    font-weight: bold;

    white-space: nowrap;
}


/* ==================================================
   施設利用料
================================================== */

.facility-fee {
    min-height: 44px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-top: 16px;

    padding: 0 14px;

    background-color: #e5e7eb;
    color: #333333;

    border-top: 1px solid #c7cbd1;
    border-bottom: 1px solid #c7cbd1;

    font-size: 18px;
    font-weight: bold;
}


.facility-fee .fee-value {
    color: #333333;

    font-size: 19px;
}


/* ==================================================
   合計
================================================== */

.result-total {
    min-height: 46px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-top: 18px;

    padding: 0 14px;

    background-color: #d9dce2;
    color: #222222;

    border: 1px solid #bfc3ca;

    font-size: 21px;
    font-weight: bold;
}


.result-total .total-value {
    color: #333333;

    font-size: 21px;
}


/* ==================================================
   注意書き
================================================== */

.result-note {
    margin-top: 22px;

    color: #555555;

    text-align: center;

    font-size: 17px;

    line-height: 1.5;
}


/* ==================================================
   スマートフォン
================================================== */

@media screen and (max-width: 700px) {

    .simulator {
        width: 100%;
        max-width: 100%;
    }


    .simulator-lead {
        margin-bottom: 60px;

        font-size: 14px;
        line-height: 1.7;
    }


    main.site-main h2 {
        font-size: 22px;
    }


    .titleg {
        min-width: 0;

        margin: 0 0 16px 0;

        text-align: left;

        padding: 10px 10px;
    }


    /* ----------------------------------------------
       メッセージ
    ---------------------------------------------- */

    .simulation-message {
        margin-bottom: 12px;

        padding: 8px 10px;

        font-size: 13px;

        line-height: 1.5;
    }


    /* ----------------------------------------------
       入力エリア
    ---------------------------------------------- */

    .input-area {
        width: 100%;

        padding: 12px 4px;
    }


    /* ----------------------------------------------
       個数・重量
       到着日・搬出予定日
    ---------------------------------------------- */

    .input-row-group {
        display: block;

        width: 100%;

        margin-bottom: 16px;
    }


    .input-item {
        display: grid;

        grid-template-columns: 110px minmax(0, 1fr);

        gap: 10px;

        width: 100%;

        margin-bottom: 14px;
    }


    .input-item label {
        display: flex;

        align-items: center;

        width: 110px;

        margin: 0;

        font-size: 14px;

        font-weight: bold;

        line-height: 1.4;
    }


    .input-box {
        position: relative;

        width: 100%;

        height: 52px;
    }


    .input-box input {
        width: 100%;

        height: 52px;

        padding: 5px 52px 5px 12px;

        font-size: 16px;

        line-height: 1.4;
    }


    .input-box .unit {
        right: 12px;

        font-size: 14px;
    }


    /* ----------------------------------------------
       日付入力
    ---------------------------------------------- */

    .date-input-box {
        position: relative;

        width: 100% !important;

        height: 52px !important;
    }


    .date-input-box .date-display-input {
        width: 100% !important;

        height: 52px !important;

        padding: 5px 52px 5px 12px !important;

        font-size: 16px !important;

        line-height: 1.4;

        box-sizing: border-box;

        z-index: 1 !important;
    }


    /*
     * iPhone / iPad Safari用
     */
    .date-input-box .date-input {
        position: absolute !important;

        top: 0 !important;
        left: 0 !important;

        width: 100% !important;

        height: 52px !important;

        min-width: 0 !important;
        min-height: 0 !important;

        max-width: none !important;
        max-height: none !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;

        background: transparent !important;
        background-image: none !important;

        color: transparent !important;

        opacity: 0 !important;

        cursor: pointer !important;

        pointer-events: auto !important;

        appearance: none !important;
        -webkit-appearance: none !important;
        -moz-appearance: none !important;

        z-index: 20 !important;
    }


    /*
     * iPhone / iPadでは
     * 独自ボタンは見た目だけにする。
     */
    .date-input-box .date-picker-button {
        position: absolute !important;

        top: 0 !important;
        right: 0 !important;

        width: 52px !important;
        height: 52px !important;

        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;

        cursor: pointer !important;

        pointer-events: none !important;

        z-index: 2 !important;
    }


    .date-input-box .date-picker-button svg {
        width: 22px !important;
        height: 22px !important;
    }


    /* ----------------------------------------------
       特殊保管施設
    ---------------------------------------------- */

    .special-title {
        margin-top: 28px;

        margin-bottom: 14px;

        font-size: 17px;
    }


    .special-row {
        display: grid;

        grid-template-columns: 110px minmax(0, 1fr);

        gap: 10px;

        width: 100%;

        margin-left: 0;

        margin-bottom: 14px;
    }


    .special-row > label {
        display: flex;

        align-items: center;

        width: 110px;

        margin: 0;

        font-size: 13px;

        line-height: 1.4;
    }


    .special-row .input-box {
        position: relative;

        width: 100%;

        height: 52px;

        gap: 0;
    }


    .special-row .input-box input {
        width: 100%;

        height: 52px;

        padding: 5px 52px 5px 12px;

        font-size: 16px;

        line-height: 1.4;
    }


    .special-row .unit {
        right: 12px;

        font-size: 14px;
    }


    /* ----------------------------------------------
       シミュレーションボタン
    ---------------------------------------------- */

    .button-area {
        width: 100%;

        margin-top: 32px;

        margin-bottom: 20px;
    }


    .simulate-button {
        width: 100%;

        min-width: 0;

        height: 56px;

        padding: 10px 8px;

        font-size: 17px;
    }


    /* ----------------------------------------------
       結果
    ---------------------------------------------- */

    #simulation-result {
        width: 100%;

        max-width: 100%;
    }


    .result-header {
        min-height: 40px;

        padding: 0 9px;

        font-size: 17px;
    }


    .result-row {
        min-height: 42px;
    }


    .result-label {
        width: 35px;

        padding-left: 7px;

        font-size: 15px;
    }


    .result-description {
        padding: 6px 4px;

        font-size: 13px;
    }


    .result-value {
        width: 90px;

        margin-left: auto;

        padding-right: 7px;

        font-size: 14px;
    }


    .facility-fee {
        min-height: 42px;

        margin-top: 13px;

        padding: 0 9px;

        font-size: 16px;
    }


    .facility-fee .fee-value {
        font-size: 17px;
    }


    .result-total {
        min-height: 45px;

        margin-top: 15px;

        padding: 0 9px;

        font-size: 19px;
    }


    .result-total .total-value {
        font-size: 19px;
    }


    .result-note {
        margin-top: 22px;

        padding: 8px 7px;

        font-size: 14px;
    }

}