@charset "utf-8";

.contents .headering {
    margin-bottom: 0;
}
.w12em {
    max-width: 12em !important;
}
.contents .form {
    position: relative;
}

.contents .form table {
    width: 100%;
}

.contents .form th span {
    display: inline-block;
    vertical-align: text-top;
    line-height: 1.5;
}
/* スマホ用コード */
@media screen and (max-width:767px) {
    .contents .form table th {
        padding: 20px 0 0 0;
    }
    .contents .form table th br {
        display: none;
    }
    .contents .form table td {
        position: relative;
        padding: 10px 0 20px 0;
    }
}

/* 必須・任意 */
span.req,
span.any {
    display: inline-block;
    width: 40px;
    margin-top: -4px;
    margin-right: 10px;
    padding: 3px 4px 4px;
    border-radius: 3px;
    font-size: 1.3rem;
    text-align: center;
    line-height: 1;
    vertical-align: middle;
    color: #fff;
}

span.req {
    background-color: #d91616;
}

span.any {
    background-color: #828c99;
}

/* ラジオボタン */
input[type="radio"] {
    display: none;
}

input[type="radio"] + span {
    position: relative;
    display: inline-block;
    padding-left: 22px;
    vertical-align: middle;
    font-weight: bold;
}

input[type="radio"] + span::before {
    content: "";
    display: block;
    position: absolute;
    top: -9px;
    left: -1px;
    width: 14px;
    height: 14px;
    background-color: #fff;
    border: 1px solid #1a1a1a;
    border-radius: 100%;
}

input[type="radio"] + span::after {
    content: "";
    display: block;
    position: absolute;
    left: 4px;
    top: -4px;
    width: 6px;
    height: 6px;
    margin: auto;
    border-radius: 100%;
}

input[type="radio"]:checked + span::after {
    background-color: #1a1a1a;
}

/* チェックボックス */
input[type="checkbox"] {
    display: none;
}

input[type="checkbox"] + span {
    display: inline-block;
    position: relative;
    vertical-align: top;
    width: 20px;
    height: 20px;
    margin-top: 4px;
    margin-right: 10px;
    border: 1px solid #1a1a1a;
    background: #fff;
}

input[type="checkbox"] + span::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    width: 9px;
    height: 9px;
    margin: auto;
}

input[type="checkbox"]:checked + span::before {
    top: -4px;
    left: 0;
    width: 9px;
    height: 6px;
    border-left: 2px solid #00327b;
    border-bottom: 2px solid #00327b;
    transform: rotate(-45deg);
    background: none;
}

/* テキストボックス */
input[type="text"],
textarea {
    font-size: 1.6rem;
    font-weight: 400;
    width: 100%;
    background: #f4f5f6;
    padding: 4px 15px 5px;
    border-radius: 0;
    -webkit-appearance: none;
}

textarea {
    min-width: 100%;
    min-height: 150px;
    resize: vertical;
    vertical-align: text-top;
}

table input[type='text'],
.selectPD select,
table textarea{
    outline: 0;
}
table input[type='text']:focus, 
.selectPD select:focus,
table textarea:focus{
    box-shadow: 0 0 2px 3px #ddd inset;
}

textarea::-webkit-input-placeholder,
input::-webkit-input-placeholder {
    color: #b6bbbf;
}

textarea::-moz-placeholder,
input::-moz-placeholder {
    color: #b6bbbf;
    opacity: 1;
}

textarea::-ms-input-placeholder,
input::-ms-input-placeholder {
    color: #b6bbbf;
}

/* プルダウン */
.selectPD label {
    position: relative;
    display: inline-block;
    -webkit-appearance: none;
    cursor: pointer;
}

.selectPD label::before,
.selectPD label::after {
    content: "";
    position: absolute;
}

.selectPD label::before {
    right: 0;
    top: 0;
    width: 36px;
    height: 100%;
    background-color: #00327b;
    pointer-events: none;
}

.selectPD label::after {
    display: block;
    position: absolute;
    top: 11px;
    right: 14px;
    width: 8px;
    height: 8px;
    border: 2px solid #fff;
    border-left: 0;
    border-bottom: 0;
    margin: auto;
    line-height: 1;
    box-sizing: border-box;
    transform: translateY(25%) rotate(135deg);
    transition: 0.3s ease 0s;
    pointer-events: none;
}

.selectPD label select {
    background: #f4f5f6;
    color: #1a1a1a;
    min-width: 212px;
    padding: 4px 51px 5px 15px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.selectPD label select::-ms-expand {
    display: none;
}

.selectPD label select:hover {
    cursor: pointer;
}

_:-ms-lang(x),
.selectPD label select {
    appearance: none;
}

.check-boxes a {
    color: #5a6b80;
    text-decoration: underline;
    transition: .3s ease-in-out;
}

.check-boxes a:hover {
    opacity: .7;
}

.check-boxes > p:first-child {
    margin-bottom: 30px;
}

.form .check-boxes label {
    margin-right: 0;
}

.form input.btn {
    background-size: 44px;
    background-position: center right 20px;
    background-repeat: no-repeat;
}

.form button.check:disabled {
    opacity: 0.4;
}

/* ボタン */
.form button {
    cursor: pointer;
}

.form button.back {
    float: left;
    min-width: 100px;
    padding: 20px;
    text-align: center;
    background-color: #8c8c8c;
}

.form button.back::after {
    content: none;
}

.form button:not(:disabled):hover {
    opacity: 0.7;
}
/* PC用 */
@media print,screen and (min-width:768px) {
    .form button.back {
        margin-right: -100px;
    }
}
/* スマホ用コード */
@media screen and (max-width:767px) {
    .form button {
        min-width: 70%;
        min-height: 60px;
    }

    .form button.back {
        min-width: 25%;
        margin-right: 5%;
    }
}

.home_input {
    opacity: 0;
    overflow-y: hidden;
    max-height: 0;
    transition: all 500ms 0s ease;
}

.home_input.on {
    opacity: 1;
    max-height: 500px;
}

/* 表組 */
table.bt0 {
    border-top: none !important;
}

table {
    border-left: none;
    border-right: none;
}

table th {
    width: 25%;
}

table td {
    width: 75%;
}

table th {
    background: none;
}

table tr:not(:last-child) th,
table tr:not(:last-child) td {
    border-bottom: 1px solid #ced5d9;
}

/* PC用 */
@media print,screen and (min-width:768px) {
    .check-boxes {
        margin: 0 auto 50px;
    }

    .amount + .name {
        margin-top: 15px;
    }

    .form label {
        margin-right: 28px;
        display: inline-block;
        cursor: pointer;
    }

    table th,
    table td {
        padding: 30px 0;
    }
}
/* スマホ用コード */
@media screen and (max-width:767px) {
    table th {
        padding: 15px 0 10px;
    }

    table td {
        padding: 0 0 15px;
    }

    table tr th {
        border-bottom: none !important;
    }

    table tr:last-child th {
        border-bottom: none !important;
    }

    tr:first-child td,
    table tr td {
        border-top: none !important;
    }

    .form label {
        display: block;
    }

    .form .selectPD label {
        display: inline-block;
    }

    input[type="text"],
    textarea {
        font-size: medium;
    }

    input[type="checkbox"]+span {
        margin-top: 2px;
    }

    .check-boxes {
        margin: 0 0 40px;
        font-size: 1.5rem;
    }

    .check-boxes > p:first-child {
        margin-bottom: 15px;
    }

    .check-boxes + button {
        font-size: 1.5rem;
    }
}

/* ------------------------------
 完了画面
------------------------------ */
.contentsTop.thanks::before {
    height: 700px;
}

/* ------------------------------
 お問い合わせボックス
------------------------------ */
.colorBox-a {
    padding: 50px 60px;
    background-color: #F4F5F6;
    border-radius: 6px;
}

.infoBox {
    display: flex;
    gap: 5px 40px;
    justify-content: center;
    margin-bottom: 10px;
}

.contact-tel,
.contact-fax {
    position: relative;
    padding-left: 60px;
    font-family: "Oswald", sans-serif;
    font-size: 3.6rem;
    font-weight: 500;
    color: #00327b;
}

.contact-tel::before,
.contact-fax::before{
    content: "";
    display: inline-block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 50px;
    margin: auto;
}

.contact-tel::before {
    background: url('../img/icon_tel.svg') no-repeat center / 100%;
}

.contact-fax::before {
    background: url('../img/icon_fax.svg') no-repeat center / 100%;
}

/* PC用 */
@media screen and (min-width:768px) {
    .contact-tel {
        margin-right: 40px;
    }
}
/* スマホ用コード */
@media screen and (max-width:767px) {
    .colorBox-a {
        padding: 25px 20px;
    }

    .infoBox {
        flex-direction: column;
        align-items: center;
        margin-right: 10px;
    }

    .contact-tel,
    .contact-fax {
        font-size: 3rem;
        padding-left: 50px;
    }

    .contact-tel::before {
        width: 40px;
        height: 40px;
    }

    .contact-fax::before {
        width: 40px;
        height: 40px;
    }

    .contact-tel a {
        color: #00327b;
        text-decoration: none !important;
    }
}