@charset "UTF-8";

/**
 * お問い合わせフォーム 杉藤様用スタイル
 * 管理場所：/plugins/my-snow-monkey/assets/css/cf7-style.css
 */

/* ==========================================================================
   1. 共通レイアウト & 必須ラベル
   ========================================================================= */
.wpcf7 .form-fields,
.wpcf7 .step-confirm {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px 0;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    box-sizing: border-box;
}

/* フォームの各入力行 */
.wpcf7 .form-row {
    margin-bottom: 25px;
    display: block;
}

/* 項目ラベル（縦並び用に余白を調整） */
.wpcf7 .form-row > label {
    display: flex;
    align-items: center;
    font-size: 15px;
    font-weight: bold;
    margin-bottom: 8px; /* 入力欄との間の余白 */
    color: #333;
}

/* 必須ラベル */
.wpcf7 .required {
    background-color: #eb6157; /* 赤色 */
    color: #fff;
    font-size: 11px;
    padding: 2px 6px;
    margin-left: 10px;
    border-radius: 3px;
    font-weight: bold;
    display: inline-block;
    vertical-align: middle;
}

/* ラジオボタン・チェックボックスのレイアウト (すべて縦並びに統一) */
.wpcf7 .wpcf7-list-item {
    display: block;
    margin: 0 0 10px 0;
}

.wpcf7 .wpcf7-list-item-label {
    font-weight: normal;
    margin-left: 5px;
}

/* ==========================================================================
   2. 入力パーツ (Input / Textarea)
   ========================================================================= */
/* 基本入力フィールド */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
    border: 1px solid #ccc;
    background-color: #f6f6f6;
    padding: 10px 15px;
    border-radius: 4px;
    width: 100%;
    box-sizing: border-box;
    font-size: 15px;
    color: #333;
    transition: all 0.2s;
    display: block;
}

/* フォーカス時の挙動 */
.wpcf7 input:focus, 
.wpcf7 textarea:focus {
    background-color: #fff;
    border-color: var(--wp--preset--color--sm-sub-accent, #007b85) !important;
    outline: none;
}

/* お問い合わせ内容（エリアの高さ） */
.wpcf7 textarea {
    height: 130px;
}

/* ==========================================================================
   3. エラー表示
   ========================================================================= */
/* エラー時のボーダー（テキストフィールド・テキストエリア等） */
.wpcf7-not-valid:not(span) {
    border: 1px solid #eb6157 !important;
    background-color: #fff !important;
}

/* チェックボックス・ラジオボタン等の外枠（span）はボーダーを付けない */
span.wpcf7-not-valid {
    border: none !important;
    background-color: transparent !important;
}

/* エラーメッセージ（太字・赤） */
.wpcf7-not-valid-tip {
    color: #eb6157 !important;
    font-size: 13px !important;
    font-weight: bold !important;
    margin-top: 6px !important;
    display: block !important;
    width: 100% !important;
    text-align: left !important;
}

/* ==========================================================================
   4. 確認画面 (縦並びに統一)
   ========================================================================= */
.wpcf7 .step-confirm h3 {
    font-size: 18px;
    margin-bottom: 30px;
    text-align: center;
    color: #333;
}

.wpcf7 .confirm-list p {
    border-bottom: 1px solid #eee;
    padding: 15px 0;
    margin: 0;
    display: flex;
    flex-direction: column; /* 縦並びに指定 */
}

.wpcf7 .confirm-list p strong {
    width: 100%;
    color: #666;
    font-size: 14px;
    margin-bottom: 8px; /* 入力内容との余白 */
}

.wpcf7 .confirm-list p span {
    width: 100%;
    color: #333;
    line-height: 1.6;
    word-break: break-all;
}

/* ==========================================================================
   5. ボタン (共通サイズ・カラー)
   ========================================================================= */
.wpcf7 .form-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 50px;
}

/* 全てのボタンを同じ大きさに固定 */
.wpcf7 .btn-confirm, 
.wpcf7 .btn-submit, 
.wpcf7 .btn-back {
    display: inline-block;
    width: 240px !important;      /* ボタン幅固定 */
    height: 54px !important;      /* ボタン高さ固定 */
    line-height: 54px !important;
    padding: 0 !important;
    font-size: 16px;
    font-weight: bold;
    border-radius: 4px;
    border: none;
    cursor: pointer;
    transition: 0.3s;
    text-align: center;
    box-sizing: border-box;
    vertical-align: middle;
}

/* メインボタン（確認・送信） */
.wpcf7 .btn-confirm, 
.wpcf7 .btn-submit {
    background-color: var(--wp--preset--color--sm-accent, #0099a1) !important;
    color: #fff !important;
}

.wpcf7 .btn-confirm:hover, 
.wpcf7 .btn-submit:hover {
    background-color: var(--wp--preset--color--sm-sub-accent, #007b85) !important;
}

/* サブボタン（戻る） */
.wpcf7 .btn-back {
    background-color: #eee !important;
    color: #333 !important;
}

.wpcf7 .btn-back:hover {
    background-color: #ddd !important;
}

/* CF7固有の送信ボタンリセット */
input.wpcf7-submit.btn-submit {
    appearance: none;
    -webkit-appearance: none;
}

/* ==========================================================================
   6. レスポンシブ (Mobile)
   ========================================================================= */
@media screen and (max-width: 600px) {
    .wpcf7 .form-fields, 
    .wpcf7 .step-confirm {
        padding: 20px 15px;
    }

    /* ボタンを縦並びに */
    .wpcf7 .form-buttons {
        flex-direction: column;
        align-items: center;
        gap: 15px;
    }

    .wpcf7 .btn-confirm, 
    .wpcf7 .btn-submit, 
    .wpcf7 .btn-back {
        width: 100% !important; /* 横幅いっぱい */
    }
}

/* Google reCAPTCHA */
.wpcf7 .recaptcha {
    font-size: 0.8rem;
    text-align: center;
    margin-top: 30px;
}
.wpcf7 .grecaptcha-badge {
    visibility: hidden;
}