/* ====================================================
contact-page style
==================================================== */
.common__contact__ttl__wrap {
    padding-top: 28rem;
}

.common__contact__ttl {
    font-family: "Shippori Mincho B1";
    font-size: 5.6rem;
    font-weight: 400;
    margin-bottom: 5rem;
}

.common__contact__ttl--small {
    font-size: 2.7rem;
}

.common__contact__txt {
    font-family: "Zen Kaku Gothic New";
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 2.25;
}

@media screen and (max-width: 767px) {

    .common__contact__ttl__wrap {
        padding-top: 12rem;
    }

    .common__contact__ttl {
        font-size: 4rem;
        margin-bottom: 6rem;
        padding-left: 3.6rem;
    }

    .common__contact__txt {
        font-size: 1.4rem;
        padding: 0 3.6rem;
    }
}

/* ====================================================
contact common style
==================================================== */


.contact__head {
    color: #000;
    font-size: 3rem;
    font-weight: 300;
    margin-bottom: 4rem;
}

.contact-inner {
    display: flex;
    justify-content: center;
    margin-top: 10rem;
    margin-bottom: 10rem;
    padding-top: 10rem;
    position: relative;
}

.contact-inner::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 0.1rem;
    background-color: #000;
}

.btn__submit {
    font-family: "Shippori Mincho B1";
    font-size: 2.4rem;
    text-align: center;
    min-width: 20rem;
    line-height: 1;
    margin: 0;
    padding: 2rem 4.5rem;
    border: solid 0.1rem #000;
    border-radius: 100rem;
    letter-spacing: 0.3736rem;
}

.form__btn p {
    width: fit-content;
}

main.contact~footer .footer-contact {
    display: none;
}

@media screen and (max-width: 767px) {

    .contact__head {
        font-size: 2rem;
    }


    .form__btn {
        text-align: center;
        padding-left: 0;
    }

    .form__btn p {
        font-size: 2.4rem;
        text-align: center;
    }
}

/* ====================================================
contact__detail style
==================================================== */

.contact__detail__cont {
    width: 53rem;
}

.contact__detail__txt {
    font-family: "Shippori Mincho B1";
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.5;
}

.contact__detail__txt span {
    color: #dc3545;
}

.pamphlet__cont {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
}

.pamphlet__items {
    padding: 1rem;
    border: 0.05rem solid #D9D9D9;
}

.contact__detail__ttl {
    color: #000;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 3.2rem;
}

.contact__detail__list {
    padding-left: 2rem;
    font-weight: 400;
    font-size: 1.8rem;
    line-height: 3.2rem;
}


@media screen and (max-width: 767px) {
    .contact__detail__cont {
        width: 100%;
        padding-top: 3rem;
    }

    .contact__detail__ttl,
    .contact__detail__list {
        font-size: 1.3rem;
    }

    .btn__submit {
        padding: 1.6rem 8.5rem;
    }

}

/* ====================================================
contact__form style
==================================================== */

.contact__form__cont {
    width: 84rem;
}

.form__container {
    margin-top: 3.5rem;
    padding: 4rem 0;
    padding-bottom: 8rem;
    border-top: 1px solid #e9ecef;
}

.form__container:nth-of-type(1) {
    margin-top: 0;
    border-top: 0;
}


.form__group {
    display: flex;
    align-items: baseline;
    margin-bottom: 5rem;
    border-bottom: 1px solid #e9ecef;
    padding-bottom: 5rem;
}

.form__group p {
    display: flex;
    align-items: center;
    width: 100%;
    flex-wrap: wrap;
}

.form__group:has(.name__group) p {
    width: auto;
}

.form__group span {
    width: 100%;
    flex: 1;
    width: auto;
}

.form__group:last-of-type {
    padding-bottom: 0;
    margin-bottom: 0;
    gap: 0rem;
}

.form__group:nth-last-child(1 of .form__group) {
    border-bottom: none;
}

.form__group__label {
    width: 20rem;
    display: block;
    font-weight: 500;
    font-size: 1.6rem;
    color: #495057;
}

.form__label__privacy {
    width: 18rem;
}

.form__group__label.checkbox__label {
    width: 100%;
}

.required {
    color: #dc3545;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
select,
textarea {
    width: 100%;
    padding: 0.8rem 1.6rem;
    border: 1px solid #ced4da;
    border-radius: 6px;
    font-size: 1.4rem;
    line-height: 1;
    background-color: white;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
select:focus {
    outline: none;
    border-color: #80bdff;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.name__group {
    width: 100%;
    flex: 1;
    display: flex;
    gap: 2rem;
    font-size: 1.6rem;
}

.name__group p {
    display: flex;
    gap: 1.5rem;
    width: 100%;
    margin: 0;
}

.name__group br {
    display: none;
}

.name__group span.wpcf7-form-control-wrap {
    flex: 1;
    width: auto;
    display: block;
}

.form__group__textarea p {
    align-items: start;
}

.form__group__select {
    appearance: none;
    width: 100%;
    padding: 0.8rem 1.6rem;
    border: 1px solid #ced4da;
    border-radius: 6px;
    font-size: 1.4rem;
    line-height: 1;
    background-color: white;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;

    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' viewBox='0 0 16 8'%3e%3cpath d='M0 0L8 8L16 0H0Z' fill='%23000000'/%3e%3c/svg%3e");
    background-position: right 12px center;
    background-repeat: no-repeat;
    background-size: 1.2rem;
    padding-right: 4rem;
    color: #000;
}

.form__group__select:has(option[value=""]:checked) {
    color: #BCBCBC;
}

.form__group__select option {
    color: #000;
}

/* 数値入力欄の矢印（スピンボタン）を非表示にする */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type="number"] {
    -moz-appearance: textfield;
}


.form__group__radio .form__group__label {
    margin-top: 0.6rem;
    width: 19rem;

}

.form__group__radio label {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 2;
    margin-bottom: 1.6rem;
}

.form__group__radio label:last-child {
    margin-bottom: 0;
}

.radio__group .wpcf7-list-item {
    display: block;
    margin: 5px 0;
}

.radio__group label {
    cursor: pointer;
}

.form__group.address__group p {
    width: auto;
}

.form__group.address__group p:has(.zip-mark) {
    width: 40%;
}

.address__group>div {
    width: 70%;
}

.address__group>div>p:last-of-type {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.form__group.address__group span {
    width: 100%;
}

.address__zip {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding-bottom: 2rem;
    font-size: 1.6rem;
}

.address__zip p {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem;
    width: auto;
}

.address__zip br {
    display: none;
}

.zip-mark {
    font-size: 1.6rem;
    margin: 0;
    flex: 0 !important;
}


.address__group>div>p:last-of-type br {
    display: none;
}

.checkbox__group .wpcf7-list-item {
    margin: 0;
}


.checkbox__group {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.6rem;
}

input[type="checkbox"] {
    appearance: none;
    flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 40px;
    border: 1px solid #ddd;
    position: relative;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='13' height='10' viewBox='0 0 13 10' fill='none'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.01328 7.88496L1.32095 5.19263C1.01835 4.89003 0.529543 4.89003 0.226947 5.19263C-0.075649 5.49522 -0.075649 5.98403 0.226947 6.28663L3.47016 9.52984C3.77275 9.83244 4.26156 9.83244 4.56416 9.52984L12.7731 1.32095C13.0756 1.01835 13.0756 0.529543 12.7731 0.226947C12.4705 -0.075649 11.9816 -0.075649 11.6791 0.226947L4.01328 7.88496Z' fill='%23D9D9D9'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 60%;

    &:checked {
        background-color: #000;
        border-color: #000;
    }

    /* チェックマークを作成 */
    &:checked::after {
        content: "";
        position: absolute;
        top: 51%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 2.4rem;
        height: 2.4rem;
        font-weight: bold;
        background-repeat: no-repeat;
        background-position: center;
        background-size: 50%;
    }
}

input[type="radio"] {
    appearance: none;
    flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 40px;
    border: 1px solid #ddd;
    position: relative;
    cursor: pointer;

    &:checked {
        background-color: #000;
        border-color: #000;
    }

    /* チェックマークを作成 */
    &:checked::after {
        content: "";
        position: absolute;
        top: 51%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 2.55rem;
        height: 2.4rem;
    }
}

.checkbox-label {
    margin-bottom: 0;
    font-size: 1.4rem;
    line-height: 1.5;
    color: #495057;
}

.privacy__link {
    margin-left: 1rem;
    text-decoration: underline;
    text-underline-offset: 0.5rem;
}

.privacy__link:hover {
    color: #0056b3;
}

.form__group input::placeholder,
.form__group__select::placeholder,
textarea::placeholder {
    color: #C1C1C1;
    opacity: 1;
}

.form__group textarea {
    line-height: 1.5;
}

.wpcf7-form:not(.is-submitted) .wpcf7-not-valid-tip {
    display: none !important;
}

.wpcf7-not-valid-tip {
    font-size: 1.4rem !important;
    margin-top: 0.4rem;
    line-height: 1;
}

.wpcf7-response-output {
    display: none !important;
}


@media screen and (max-width: 767px) {

    .form__container {
        padding: 3rem 0;
        padding-bottom: 7.2rem;
    }

    .form__group {
        display: block;
        margin-bottom: 3rem;
        padding-bottom: 3rem;
    }

    .form__group p {
        flex-direction: column;
        align-items: baseline;
        line-height: 1;
    }

    .form__group__label.checkbox__label {
        margin-bottom: 0;
    }

    .form__group:nth-last-child(1 of .form__group) {
        margin-bottom: 6rem;
    }

    .contact_confirm .form__group:nth-last-child(1 of .form__group) {
        margin-bottom: 12rem;
    }

    .contact__form__cont {
        width: 100%;
        margin-top: 4rem;
    }

    .contact__detail__txt {
        font-family: "Shippori Mincho B1";
        font-size: 1.8rem;
        line-height: 1.6;
    }

    .address__group>div {
        width: 100%;
    }

    .checkbox__group {
        margin-top: 3.2rem;
    }

    .contact-inner {
        flex-direction: column;
        margin-top: 7rem;
        padding: 0 3.6rem;
    }

    .contact-inner::before {
        width: 80%;
    }

    .address__group>div>p:last-of-type {
        padding-top: 1rem;
    }

    .form__group__radio label {
        font-size: 1.3rem;
        font-style: normal;
        font-weight: 400;
        line-height: 2.4;
    }

    .form__group__radio input[type="radio"] {
        margin-right: 1rem;
    }

    .form__group__label,
    .form__group__radio label,
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="number"],
    select,
    textarea {
        font-size: max(1.6rem, 16px);
    }


    .form__group input::placeholder,
    .form__group__select::placeholder,
    textarea::placeholder {
        font-size: 1.3rem;
    }

    .name__group {
        padding-top: 1.5rem;
        font-size: 1.4rem;
    }

    .form__group__radio p {
        flex-direction: row;
        margin-bottom: 2rem;
    }

    .zip-mark {
        font-size: 2.1rem;
    }

    .address__zip {
        font-size: 1.4rem;
        padding-top: 1rem;
        padding-bottom: 0;
    }

    .form__group.address__group p:has(.zip-mark) {
        width: 75%;
        flex-direction: row;
        align-items: center;
    }

    .wpcf7-not-valid-tip {
        position: initial !important;
        margin-top: 0.8rem !important;
        line-height: 1.2 !important;
    }
}



/* ====================================================
contact confirm style
==================================================== */

.contact_confirm .form__group.textarea {
    align-items: flex-start;
}

.textarea .form__group__label {
    margin-top: 0.4rem;
}


.contact_confirm .form__value {
    font-size: 1.8rem;
    width: 50rem;
    line-height: 1.5;
}

.contact_confirm input[type="checkbox"] {
    appearance: none;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 40px;
    border: 1px solid #000;
    position: relative;
    cursor: pointer;
    background-color: #000;

    /* 確認画面では最初から黒いチェックマークを表示 */
    &::after {
        content: "";
        position: absolute;
        top: 51%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 2.6rem;
        aspect-ratio: 1 / 1;
        font-weight: bold;
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='13' height='10' viewBox='0 0 13 10' fill='none'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.01328 7.88496L1.32095 5.19263C1.01835 4.89003 0.529543 4.89003 0.226947 5.19263C-0.075649 5.49522 -0.075649 5.98403 0.226947 6.28663L3.47016 9.52984C3.77275 9.83244 4.26156 9.83244 4.56416 9.52984L12.7731 1.32095C13.0756 1.01835 13.0756 0.529543 12.7731 0.226947C12.4705 -0.075649 11.9816 -0.075649 11.6791 0.226947L4.01328 7.88496Z' fill='%23000000'/%3e%3c/svg%3e");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 50%;
    }

    pointer-events: none;

}

.contact_confirm .form__group p {
    width: initial;
    align-items: start;

}

.contact_confirm .form__btn__wrap {
    display: flex;
    gap: 3rem;
}

.contact__form__cont .com-btn__arrow {
    width: 2.4rem;
    height: 2.4rem;
}

.contact__form__cont .com-btn__arrow svg {
    width: 1.1rem;
    height: 1.1rem;
}

input.wpcf7-previous {
    display: inline-block !important;
}

.contact__detail__txt--confirm {
    font-family: "Shippori Mincho";
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 3rem;
    padding: 2rem;
    background-color: #F7F7F7;
}


.contact__form__cont .btn__submit {
    font-family: "Shippori Mincho B1";
    font-size: 2.4rem;
    text-align: center;
    min-width: 20rem;
    line-height: 1;
    margin: 0;
    padding: 2rem 4.5rem;
    border: solid 0.1rem #000;
    border-radius: 100rem;
    letter-spacing: 0.3736rem;
}

.contact__form__cont .btn__submit-back {
    font-family: "Shippori Mincho B1";
    font-size: 2.4rem;
    text-align: center;
    min-width: 20rem;
    line-height: 1;
    margin: 0;
    padding: 2rem 4.5rem;
    border: solid 0.1rem #000;
    border-radius: 100rem;
    letter-spacing: 0.3736rem;
    background-color: #f1f1f1;
}

.contact__form__cont .button-wrap-box {
    gap: 2rem;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.form__btn {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

div.wpcf7 .ajax-loader {
    position: absolute;
    top: -3rem;
    right: calc(50%);
}

@media screen and (max-width: 767px) {
    .contact_confirm .form__value {
        font-size: 1.3rem;
        width: 100%;
    }

    .contact__detail__txt--confirm {
        font-size: 1.3rem;
    }

    .contact__form__cont .button-wrap-box {
        width: fit-content;
        display: flex;
        flex-direction: column-reverse;
        align-items: baseline;
        justify-content: center;
        gap: 2rem;
        margin: auto;
    }

    .contact_confirm .form__group p {
        padding-top: 1.5rem;
    }

    .contact__form__cont .btn__submit,
    .contact__form__cont .btn__submit-back {
        font-size: 2.4rem;
        padding: 2rem 8.5rem;
        min-width: 28rem;
        text-align: center;
    }

    .contact__form__cont .address__zip {
        padding-top: 1rem;
    }

    .contact_confirm .button-wrap-box {
        align-items: center;
    }

    .contact_confirm .form__btn p {
        align-items: center;
    }

    .contact_confirm .wpcf7-spinner {
        position: absolute;
    }

}



/* ====================================================
contact__complete style
==================================================== */

.contact_complete {
    padding-bottom: 8rem;
}

.contact_complete .common__contact__txt {
    padding-bottom: 6rem;
}



@media screen and (max-width: 767px) {
    .contact_complete .btn__submit {
        width: 80%;
        font-size: 2.4rem;
        padding: 2rem 7.2rem;
    }
}