@charset "UTF-8";

/**
 * お問い合わせフォーム 汎用スタイル
 * 対応ページ：/lp/is-ilumina-square/
 * 管理場所：/lp/wp-content/plugins/my-snow-monkey/assets/css/form-style.css
 */

/* ==========================================================================
   1. 共通レイアウト
   ========================================================================== */
/* フォーム全体のコンテナ */
.form-fields,
.step-confirm {
    max-width: 600px; /* 視認性の高いタイトな幅に固定 */
    margin: 0 auto;
    padding: 20px 0;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

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

/* 項目ラベル */
.form-row label {
    display: flex;
    align-items: center;
    font-size: 15px;
    font-weight: bold;
    margin-bottom: 10px;
    color: #333;
}

/* 必須ラベル */
.required {
    background-color: #eb6157;
    color: #fff;
    font-size: 11px;
    padding: 2px 6px;
    margin-left: 10px;
    border-radius: 3px;
    font-weight: bold;
}

/* ==========================================================================
   2. 入力パーツ (Input / Textarea / Select)
   ========================================================================== */
/* 基本入力フィールド */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select {
    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;
}

/* フォーカス時の挙動 */
.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;
}

/* 氏名・フリガナの横並び */
.name-fields {
    display: flex !important;
    gap: 15px !important;
    width: 100%;
    align-items: flex-start !important;
}

.name-fields br {
    display: none !important;
}

/* 入力欄とエラー文をセットで管理 */
.name-fields .wpcf7-form-control-wrap {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
}

/* チェックボックス（縦並び強制） */
.request-container .wpcf7-list-item {
    display: block !important;
    margin: 0 0 12px 0 !important;
}

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

/* ==========================================================================
   3. エラー表示
   ========================================================================== */
/* エラー時のボーダー（テキストフィールド・テキストエリア等）
   ※ span要素（チェックボックス等の外枠）は除外して、変な縦線を防止 */
.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. 確認画面
   ========================================================================== */
.step-confirm h3 {
    font-size: 18px;
    margin-bottom: 30px;
    text-align: center;
    color: #333;
}

.confirm-list p {
    border-bottom: 1px solid #eee;
    padding: 15px 0;
    margin: 0;
    display: flex;
    align-items: flex-start;
}

.confirm-list p strong {
    width: 160px; /* ラベルの幅を固定 */
    flex-shrink: 0;
    color: #666;
    font-size: 14px;
}

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

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

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

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

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

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

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

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

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

    /* 氏名・フリガナを縦並びに */
    .name-fields {
        flex-direction: column;
        gap: 10px !important;
    }

    /* 確認画面のラベルを縦並びに */
    .confirm-list p {
        flex-direction: column;
    }

    .confirm-list p strong {
        width: 100%;
        margin-bottom: 5px;
    }

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

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

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