/* ======== CF7 ベーススタイル ======== */

/* テキスト・メール・電話・テキストエリア */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
    width: 100%;
    padding: 0.6em 0.8em;
    border: 1px solid #60B9E5;
    border-radius: 6px;
    background-color: #fff;
    transition: border-color 0.2s ease;
}

.wpcf7 textarea {
    vertical-align: text-top;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus {
    border-width: 2px;
    outline: none;
}

/* チェックボックス・ラジオ */
.wpcf7 .wpcf7-checkbox {
    display: flex;
}

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

.wpcf7 .wpcf7-list-item-label {
    margin-left: 0.8em;
    cursor: pointer;
}

/* 必須マーク */
.required {
    color: #e74c3c;
    font-weight: 700;
    margin-left: 0.25em;
}

/* 送信ボタン */
.wpcf7 .submit-btn {
    display: inline-block;
    border: none;
    padding: 12px;
    border-radius: 50px;
    min-width: 240px;
    width: fit-content;
    cursor: pointer;
    transition: background-color 0.3s ease;
}


/* エラー・メッセージ */
.wpcf7-not-valid-tip {
    color: #e74c3c;
    margin-top: 0.25em;
}

.wpcf7-response-output {
    margin-top: 1em;
    padding: 1em;
    border-radius: 6px;
    background-color: #fff;
    font-size: 0.8em;
    text-align: center;
}

.wpcf7-response-output.wpcf7-mail-sent-ok {
    border: 1px solid #2ecc71;
    background: #ecf9f1;
}

.wpcf7-response-output.wpcf7-validation-errors {
    border: 1px solid #e74c3c;
    background: #fcebea;
}

/* spinner */
.wpcf7-spinner {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 16px;
}

/* --- 以下オリジナルCSS --- */

.contact_form_list {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 32px 80px;

    dt {
        white-space: nowrap;
        text-align: right;
        font-weight: 500;
        letter-spacing: 0.05em;
    }

    dd {
        font-size: clamp(1.4rem, 1.2rem + 0.5vw, 1.6rem);
    }

    .wpcf7-checkbox {
        flex-direction: column;
        gap: 8px;

        input[type="checkbox"] {
            border: 2px solid #60B9E5;
        }
    }

    .wpcf7-list-item-label {
        font-size: clamp(1.4rem, 1.2rem + 0.5vw, 1.6rem);
        letter-spacing: 0.05em;
    }

    @media screen and (max-width: 480px) {
        grid-template-columns: 1fr;
        gap: 8px;

        dt {
            text-align: left;
        }

        dd {
            margin-bottom: 16px;

            &:last-of-type {
                margin-bottom: 0;
            }
        }

        .submit-btn {
            width: 100%;
        }
    }
}

.turnstile-wrapper {
	text-align: center;
	margin-top: 1.5em;
}

.form-submit {
    width: fit-content;
    text-align: center;
    position: relative;

    .submit-btn {
        background-color: #e74c3c;
        color: #fff;
        position: relative;
    }

    &::after {
        content: "";
        display: inline-block;
        margin-left: 8px;
        width: 1.2em;
        aspect-ratio: 1;
        border-radius: 100vw;
        background-color: #fff;
        background-image: url(../images/common/button_icon_orange.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: 12px;
    }

}