@charset "UTF-8";

/* =============================================================================
電力買取サービス お申し込みフォーム スタイル（整理版）
========================================================================== */
/* -----------------------------------------------
目次
1. ヘッダー（33行目）
2. フローセクション（62行目）
3. フォームinputの共通スタイル（251行目）
4. お申し込みフォームのコンテナ（サイズ調整）（259行目）
5. フォームタイトル（268行目）
6. 必須バッジ（お申し込みフォーム用）（282行目）
7. お申し込みフォームのカスタマイズ（名前フィールド含む）（299行目）
8. お申し込みフォームの住所フィールド（354行目）
9. テーブルの余白設定（395行目）
10. 日付入力フィールド（409行目）
11. ファイルアップロードエリア（430行目）
12. 備考欄（518行目）
13. ご契約名義フィールド（563行目）
14. ページトップボタン（597行目）
15. プライバシーポリシー同意セクション（639行目）
16. チェックボックスのスタイル（縦並び）（654行目）
17. 送信ボタンのスタイル（buttonタグ用）（736行目）
18. フッター（792行目）
19. レスポンシブ対応（タブレット用スタイル）（810行目）
20. レスポンシブ対応（SP用スタイル）（885行目）
----------------------------------------------- */




/* -----------------------------------------------
ヘッダー
----------------------------------------------- */

* {
    box-sizing: border-box;
}

html {
    font-size: 17px;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

#wrapper {
    min-height: auto;
}
.header {
    background-color: #ffffff;
    position: relative;
    z-index: 100;
    border-top: 5px solid #004ab0;
}

.header-inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0.75rem 20px;
}

.logo {
    margin: 0;
}

.logo img {
    width: auto;
    display: block;
}

.screen-reader-response {
    display: none;
}

/* -----------------------------------------------
フローセクション（ターコイズエリア）
----------------------------------------------- */
.flow-section {
    background: #74C5CC;
    padding: 3.4375rem 0 3rem;
    position: relative;
}

.flow-bg {
    position: relative;
}

.flow-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
}

.flow-header {
    display: flex;
    align-items: flex-start;
    margin-bottom: 2rem;
}

.flow-title {
    color: #ffffff;
    font-size: 3.5rem;
    letter-spacing: 0.12em;
    font-weight: 500;
    line-height: 1.4;
    padding-top: 20px;
    margin: 0;
    flex: 1;
    text-align: left;
    text-wrap: nowrap;
}

.flow-title img {
    height: 48px;
    width: auto;
    vertical-align: middle;
    position: relative;
    top: -5px;
    margin-right: 3px;
    left: -2px;
}

.flow-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.flow-icon img {
    width: 230px;
    height: auto;
    display: block;
}

.flow-steps {
    display: flex;
    flex-direction: column;
    gap: 22px;
    position: relative;
    z-index: 2;
    margin-bottom: 0;
}

.flow-step {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 30px;
    position: relative;
    flex-wrap: wrap;
}

.flow-step > div:first-child {
    background-color: #ffffff;
    padding: 1.25rem 20px 1.25rem 0px;
    position: relative;
    min-width: 380px;
    height: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    border-radius: 4px;
}

.step-wrapper {
    top: 0;
    right: 0;
    background: #FFF100;
    color: #99be41;
    font-size: 0.75rem;
    font-weight: bold;
    padding: 0.1875rem 15px 0px 10px;
    letter-spacing: 0.05em;
    clip-path: polygon(0 0, calc(100% - 5px) 0, 100% 100%, 0 100%);
}

.step-number {
    color: #99be41;
    font-size: 1.875rem;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transform:scaleX(1.2) scaleY(1.5);
}

.step-icon {
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.step-icon img {
    width: 50px;
    height: auto;
}

.step-label {
    font-size: 1.25rem;
    letter-spacing: 0.05em;
    font-weight: 500;
    color: #333333;
    margin: 0 0 0 10px;
    text-align: left;
    flex: 1;
}

/* SP版でのみ改行を表示（デスクトップ版では非表示） */
.sp-br {
    display: none;
}

/* デスクトップ版でのみ改行を表示（SP版では非表示） */
.pc-br {
    display: inline;
}

.step-desc {
    font-size: 1.1rem;
    font-weight: 500;
    color: #333;
    line-height: 1.5;
    letter-spacing: -0.01em;
    text-align: left;
    flex: 1;
    display: flex;
}

.step-desc-type-2 {
    letter-spacing: 0.05em;
}

.step-arrow {
    position: absolute;
    left: 0;
    transform: translateX(0);
    bottom: -19px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 1.375rem;
    width: min(370px, calc(100% - 30px));
}

.step-arrow::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 8px;
    height: 8px;
    border-left: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* -----------------------------------------------
フォームinputの共通スタイル
----------------------------------------------- */

input {
    padding: 7px 5px !important;
}

/* -----------------------------------------------
お申し込みフォームのコンテナ(サイズ調整)
----------------------------------------------- */

#sec_contact .sec_contact_inner {
    max-width: 1000px;
    margin: 0 auto;
    padding-bottom: 35px;
}

/* -----------------------------------------------
フォームタイトル
----------------------------------------------- */
.form-title {
    margin-top: 3rem;
    margin-bottom: 1.5rem;
	padding: 2.125rem 0 2.125rem 0;
	background: radial-gradient(circle, #ececec 1px, transparent 1px);
	background-size: 4px 4px;
	font-size: 2.25rem;
    letter-spacing: 0.1em;
	text-align: center;
}

/* -----------------------------------------------
必須バッジ（お申し込みフォーム用）
----------------------------------------------- */
.required-badge {
    background-color: #f0af4d;
    color: #ffffff;
    font-size: 11px;
    letter-spacing: 0.3em;
    padding: 3px 7px;
    font-weight: 500;
    margin-left: 5px;
    line-height: 1;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
    text-align: center;
}

/* -----------------------------------------------
お申し込みフォームのカスタマイズ
----------------------------------------------- */

.wpcf7-form-control-wrap {
    width: 100%;
}

#sec_contact .form_entry_range th label {
    margin-left: 0;
}

#sec_contact .form_entry_range .form_set_01 {
    display: flex;
    align-items: center;
    gap: 10px;
}

.hidden-fields-container {
    border: none;
    padding: 0;
}

#sec_contact .form_entry_range .form_set_01 .wpcf7-form-control-wrap input {
    width: 100%;
    flex-shrink: 0;
}


#sec_contact .form_entry_range .form_set_04 {
    padding: 0.9375rem 28px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

#sec_contact .form_entry_range .form_set_05,
#sec_contact .form_entry_range .form_set_06 {
    display: flex;
    align-items: center;
    gap: 0 10px;

}



#sec_contact .form_entry_range .form_set_address .wpcf7-form-control-wrap {
    width: 190px;
}

#sec_contact .form_entry_range .form_set_01 .wpcf7-form-control-wrap,
#sec_contact .form_entry_range .form_set_04 .wpcf7-form-control-wrap,
#sec_contact .form_entry_range .form_set_05 .wpcf7-form-control-wrap,
#sec_contact .form_entry_range .form_set_06 .wpcf7-form-control-wrap {
    width: 45%;
    display: block;
    flex-shrink: 0;
}

#sec_contact .form_entry_range .form_set_07 {
}
#sec_contact .form_entry_range .form_set_07 .wpcf7-form-control-wrap {
    width: auto;
    padding-right: 0;
}

#sec_contact .form_entry_range .form_set_04 input,
#sec_contact .form_entry_range .form_set_05 input,
#sec_contact .form_entry_range .form_set_06 input {
    width: 100%;
    border: 1px solid #000000;
}

#sec_contact .form_entry_range .note_01 {
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 0.75rem;
}

#sec_contact .form_entry_range .note_01_flex {
    white-space: normal;
    flex: 1;
    min-width: 0;
    position: relative;
    padding-left: 1em;
}

#sec_contact .form_entry_range .note_01_flex::before {
    content: "※";
    position: absolute;
    left: 0;
    top: 0;
}

#sec_contact .form_entry_range .form_set_07 .note_01_flex {
    margin-left: 0;
    display: block;
    width: 100%;
}

#sec_contact .form_entry_range th {
    text-align: left;
    padding-left: 20px;
    font-size: 1rem;
    width: 35%;
    border-right: 0;
    border-bottom: 0;
}

/* -----------------------------------------------
お申し込みフォームの住所フィールド
----------------------------------------------- */
#sec_contact .form_entry_range .form_set_address {
    padding: 0;
    background-color: transparent;
}

#sec_contact .form_entry_range .address-field {
    display: flex;
    align-items: center;
    margin-bottom: 0.5rem;
    padding: 1.25rem 28px;
    background-color: #eff8fe;
}

#sec_contact .form_entry_range .address-field:last-child {
    margin-bottom: 0;
}

#sec_contact .form_entry_range .address-label-inline {
    font-size: 0.875rem;
    font-weight: bold;
    color: #333333;
    white-space: nowrap;
    margin-right: 10px;
}

#sec_contact .form_entry_range .address-input {
    border: 1px solid #000000;
    font-size: 1.125rem;
    width: 190px;
    flex: 0 0 auto;
}

#sec_contact .form_entry_range .address-input-long {
    border: 1px solid #000000;
    font-size: 1.125rem;
    flex: 1;
}

/* -----------------------------------------------
テーブルの余白設定
----------------------------------------------- */
#sec_contact .form_entry_range table {
    border-collapse: separate;
    border-spacing: 8px 10px;
    width: calc(100% + 16px);
    margin-left: -8px;
}

#sec_contact .form_entry_range td {
    border-bottom: 0;
}

/* -----------------------------------------------
日付入力フィールド
----------------------------------------------- */
#sec_contact .form_entry_range .form_set_01 input[type="date"] {
    width: 100%;
    border: 1px solid #000000;
    font-size: 0.75rem;
    position: relative;
}
/*プレースホルダー表示*/
#sec_contact .form_entry_range .form_set_01 input[type="date"]:not(:focus):invalid {
    color: transparent;
}

#sec_contact .form_entry_range .form_set_01 input[type="date"]:not(:focus):invalid:before {
    content: attr(placeholder);
    color: #999999;
    position: absolute;
    left: 10px;
}

/* -----------------------------------------------
ファイルアップロードエリア
----------------------------------------------- */
.file_upload_section {
    margin: 1.875rem 0 0.625rem 0;
}

.file_upload_section .section_title_text {
    font-size: 1rem;
    font-weight: 500;
    padding: 1.0625rem 0;
    background-color: #69a1c4;
    color: #ffffff;
    text-align: left;
    position: relative;
    padding-left: 120px;
    letter-spacing: 0.07em;
}

.file_upload_section .section_title_text::before {
    content: "";
    position: absolute;
    left: 50px;
    top: 45%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background-image: url(../../img/icon/sample07.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.file_upload_area {
    padding: 20px;
    background-color: #eff8fe;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

.file_upload_area .upload_title {
    margin: 0;
    font-size: 1.25rem;
    color: #333;
    white-space: nowrap;
    flex-shrink: 0;
}

.file_upload_area .upload_content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.file_upload_area .file_label {
    display: inline-block;
    cursor: pointer;
    flex-shrink: 0;
}

.file_upload_area .file_button {
    display: inline-block;
    padding: 0.5rem 30px;
    background: linear-gradient(to bottom, #f8f9fa 0%, #e9ecef 100%);
    color: #333333;
    font-size: 1rem;
    border-radius: 5px;
    transition: opacity 0.3s;
    border: 1px solid #ced4da;
}

.file_upload_area .file_button:hover {
    opacity: 0.8;
}

.file_upload_area .file_info {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
}

.file_upload_area .file_name,
.file_upload_area .file_note {
    font-size: 0.75rem;
}

/* ファイル入力のプレースホルダー色変更 */
input[type="file"].wpcf7-file {
    color: #999999;
}

input[type="file"].wpcf7-file::-webkit-file-upload-button {
    color: #333333;
    margin-right: 10px;
}

input[type="file"].wpcf7-file::-ms-browse {
    color: #333333;
    margin-right: 10px;
}

/* -----------------------------------------------
備考欄
----------------------------------------------- */
.remarks_section {
    padding: 20px;
    background-color: #eff8fe;
}

.remarks_section .remarks_title {
    margin: 0 0 10px 0;
    font-size: 1.125rem;
    font-weight: bold;
    color: #1A7ACC;
    display: flex;
    align-items: center;
    gap: 0 10px;
}

.remarks_section .optional-badge {
    align-self: auto;
    background-color: #1A7ACC;
    color: #ffffff;
    font-size: 11px;
    letter-spacing: 0.3em;
    padding: 3px 7px;
    font-weight: 500;
    margin-left: 5px;
    line-height: 1;
    white-space: nowrap;
}

.remarks_section .remarks_textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #000000;
    font-size: 1rem;
    resize: vertical;
    box-sizing: border-box;
    background-color: #ffffff;
}

.remarks_section .remarks_counter {
    text-align: right;
}

.remarks_section .counter_text {
    font-size: 0.875rem;
    color: #666;
}

/* -----------------------------------------------
ご契約名義フィールド
----------------------------------------------- */
#sec_contact .form_entry_range .form_set_contract {
    padding: 1.5625rem 28px;
    background-color: #eff8fe;
    display: flex;
    align-items: center;
    gap: 10px;
}

#sec_contact .form_entry_range .contract-label-inline {
    font-size: 0.875rem;
    font-weight: bold;
    color: #333333;
    min-width: 150px;
    white-space: nowrap;
}

#sec_contact .form_entry_range .contract-input {
    border: 1px solid #000000;
    font-size: 1.125rem;
    width: 45%;
}

#sec_contact .form_entry_range input[name="plant_address"] {
    flex: 1;
    width: auto;
}

#sec_contact .file-input {
    max-width: 100%;
}

/* -----------------------------------------------
ページトップボタン
----------------------------------------------- */
.page-top {
    position: fixed;
    right: 0;
    bottom: 4.25rem;
    width: 32px;
    height: 60px;
    background-color: #004ab0;
    color: #ffffff;
    border-radius: 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 5px 15px rgba(0, 74, 176, 0.45);
    transition: all 0.35s ease;
    z-index: 9999;
}

.page-top:hover {
    background-color: #003890;
    color: #ffffff;
    transform: translateY(-5px);
    box-shadow: 0 7px 20px rgba(0, 74, 176, 0.65);
}

.page-top span:first-child {
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1;
}

.page-top span:last-child {
    font-size: 0.625rem;
    margin-top: 3px;
    line-height: 1;
}

/* -----------------------------------------------
プライバシーポリシー同意セクション
----------------------------------------------- */
#sec_contact .form_privacy_range .privacy_agree_mass {
    background-color: #f5f5f5;
    margin-top: 35px;
}

#sec_contact .form_privacy_range .privacy_agree_mass .txt_area {
    color: #006eb0;
    font-weight: 500;
    font-size: 1.4rem;
    letter-spacing: 0.05em;
    margin-bottom: 3rem;
}

/* -----------------------------------------------
チェックボックスのスタイル（縦並び）
----------------------------------------------- */
#sec_contact .form_privacy_range .privacy_agree_mass .check_area {
    display: flex;
    justify-content: center;
}

#sec_contact .form_privacy_range .privacy_agree_mass .check_area .check_block {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#sec_contact .form_privacy_range .privacy_agree_mass .check_area .checkbox-label {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0 18px;
    font-size: 1rem;
    cursor: pointer;
    box-sizing: border-box;
    text-align: left;
}

#sec_contact .form_privacy_range .privacy_agree_mass .check_area .checkbox-label:hover {
    filter: alpha(opacity=70);
    opacity: 0.7;
}

/*チェックボックス非表示*/
#sec_contact .form_privacy_range .privacy_agree_mass .check_area .checkbox-label input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    width: 0;
    height: 0;
}

/* □を表示（大きく） */
#sec_contact .form_privacy_range .privacy_agree_mass .check_area .checkbox-label:before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 1px solid #333333;
    background-color: transparent;
    margin: 0 10px 0 0;
    flex-shrink: 0;
    box-sizing: border-box;
    align-self: flex-start;
    margin-top: 2px;
}

/* チェック時：赤い✓を表示 */
#sec_contact .form_privacy_range .privacy_agree_mass .check_area .checkbox-label:has(input[type="checkbox"]:checked):after {
    content: "✓";
    position: absolute;
    left: 18px;
    top: 2px;
    width: 20px;
    height: 20px;
    color: #ff0000;
    font-size: 1.25rem;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 20px;
    z-index: 1;
    pointer-events: none;
}

#sec_contact .form_privacy_range .privacy_agree_mass .check_area .checkbox-label span {
    display: inline-block;
}

#sec_contact .form_privacy_range .privacy_agree_mass .check_area .checkbox-link {
    text-decoration: underline;
}

.checkbox-label-text {
    font-size: 1.125rem;
}

/* -----------------------------------------------
送信ボタンのスタイル（buttonタグ用）
----------------------------------------------- */
#wrap_cont .bt_range .bt_st_01,
#sec_contact .bt_range .bt_st_01{
    display: block;
    min-width: 480px;
    padding: 1.125rem 20px 1.125rem 40px;
    background-color: #a0c912;
    color: #ffffff;
    font-size: 1rem;
    text-align: center;
    text-decoration: none;
    border: none;
    -webkit-border-radius: 7px;
    border-radius: 10px;
    cursor: pointer;
    position: relative;
    font-family: inherit;
    box-sizing: border-box;
    height: 80px;
    transition: all 0.3s ease;
    border: none;
}

#wrap_cont .bt_range .bt_st_01::before,
#sec_contact .bt_range .bt_st_01::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 5%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background-image: url(../../img/icon/sample06.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 2;
}

#wrap_cont .bt_range .bt_st_01:hover,
#sec_contact .bt_range .bt_st_01:hover {
    opacity: 0.5;
    filter: alpha(opacity=50);
}

#wrap_cont .bt_range .bt_st_01.terms_off,
#sec_contact .bt_range .bt_st_01.terms_off {
    background-color: #dcdcdc;
    cursor: default;
    color: #666666;
}

#wrap_cont .bt_range .bt_st_01.terms_off:hover,
#sec_contact .bt_range .bt_st_01.terms_off:hover {
    opacity: 1;
    filter: alpha(opacity=100);
}

.wpcf7-submit {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 0;
    top: 0;
    text-align: center !important;
    background: transparent;
    border-radius: 7px;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    font-size: 20px !important;
    font-weight: 900;
    color: #ffffff !important;
}

.wpcf7-submit:disabled {
    background: #ccc;
    pointer-events: none;
}

.wpcf7-response-output {
    color: red;
    font-size: 12px;
    text-align: center;
    margin-top: 10px;
}

/* -----------------------------------------------
フッター
----------------------------------------------- */
.footer {
    background-color: #004ab0;
    padding: 1.375rem 0;
    text-align: center;
}

.copyright {
    color: #ffffff;
    font-size: 0.875rem;
    font-weight: bold;
    letter-spacing: 1.2px;
    margin: 0;
    font-family: 'Avenir', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
}

/* =============================================================================
レスポンシブ対応（タブレット用スタイル）
========================================================================== */
@media screen and (max-width: 993px) {
    /* コンテンツ幅の調整 */
    #sec_contact .sec_contact_inner {
        width: 95%;
        max-width: 1000px;
        padding: 0 20px 50px 20px;
    }

    .flow-title {
        font-size: 2.5rem;
    }

    .flow-step > div:first-child {
        font-size: 1.25rem;
        min-width: 340px;
    }

    .step-arrow {
        width: min(340px, calc(100% - 30px));
    }

    .step-label {
        margin-left: 0;
        letter-spacing: 0;
        font-size: 1.125rem;
    }

    /* フォームタイトル */
    .form-title {
        font-size: 1.5rem;
    }

    .file_upload_section .section_title_text {
        font-size: 0.875rem;
        padding: 15px;
        padding-left: 80px;
    }
    .file_upload_section .section_title_text::before {
        left: 15px;
    }


    /* SP版でのみ改行を表示 */
    .sp-br {
        display: inline;
    }
}

#sec_contact .form_privacy_range .privacy_agree_mass .txt_area {
    font-size: 1.2rem;
}

@media screen and (max-width: 850px) {
    .flow-title {
        font-size: 2rem;
    }

    #sec_contact .form_entry_range th {
        font-size: 0.875rem;
    }

    .required-badge {
        font-size: 0.75rem;
    }
}

@media screen and (max-width: 800px) {
    #sec_contact .form_entry_range th {
        font-size: 0.75rem;
        padding: 10px;
    }

    .step-desc {
        font-size: 0.875rem;
        align-items: start;
    }

}

.bt_range {
    padding: 0 10px;
}

/* =============================================================================
レスポンシブ対応（SP用スタイル）
========================================================================== */
@media screen and (max-width: 767px) {
    #sec_contact .form_entry_range input[type="text"],
    #sec_contact .form_entry_range input[type="email"],
    #sec_contact .form_entry_range input[type="tel"],
    #sec_contact .form_entry_range input[type="date"],
    #sec_contact .form_entry_range .address-input,
    #sec_contact .form_entry_range .address-input-long,
    #sec_contact .form_entry_range .contract-input {
        width: 100% !important;
        text-align: center;
    }

    /* ヘッダー */
    .header-inner {
        padding: 0.75rem 20px;
    }

    .logo img {
        width: 100%;
        max-width: 221px;
        height: auto;
    }

    /* フローセクション */

    .flow-section {
        padding-bottom: 0;
    }

    .flow-container {
        max-width: 100%;
        padding: 0 10px;
        margin: 0 auto;
    }

    .flow-header {
        flex-direction: column;
        align-items: center;
        gap: 15px;
    }

    .flow-title {
        line-height: 1.3;
        text-align: center;
        flex: none;
        padding: 0;
    }

    .flow-title img {
        height: 1.5rem;
    }

    .flow-icon img {
        width: 200px;
    }

    .pc-br {
        display: none;
    }

    .flow-steps {
        gap: 15px;
        width: 100%;
        box-sizing: border-box;
    }

    .flow-step {

        flex-direction: column;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        gap: 0;
    }

    .flow-step > div:first-child {
        box-sizing: border-box;
        order: 1;
        align-self: center;
        min-width: 0;
        width: 100%;
    }

    .flow-step .step-desc {
        order: 2;
        margin: 0.625rem 0;
        font-size: 0.9375rem;
    }

    .flow-step .step-arrow {
        order: 3;
        position: relative;
        left: 0;
        transform: translateX(0);
        width: 100%;
    }

    .step-arrow::before{
        width: 14px;
        height: 14px;
        top: -80%;
        left: 50%;
    }

    /* フォームタイトル */
    .form-title {
        font-size: 1.375rem;
        padding: 1.25rem 0;
        margin-top: 1.5rem;
        margin-bottom: 1rem;
    }

    /* フォームコンテナ */
    #sec_contact .sec_contact_inner {
        width: 100%;
        box-sizing: border-box;
    }

    #sec_contact .form_entry_range {
        margin: 0;
    }

    /* テーブルを縦並びに */
    #sec_contact .form_entry_range table {
        border-collapse: collapse;
        border-spacing: 0;
        width: 100%;
        margin-left: 0;
    }

    #sec_contact .form_entry_range th,
    #sec_contact .form_entry_range td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
    }

    #sec_contact .form_entry_range th {
        border-right: none;
        border-bottom: none;
        padding: 0.75rem 15px 0.75rem 12px;
        text-align: left;
        font-size: 0.875rem;
    }

    #sec_contact .form_entry_range td {
        padding: 0.9375rem 10px;
    }

    /* フォームセット */
    .form_set_01 {
        
        flex-direction: column;
        align-items: center;
        gap: 5px;
    }

    #sec_contact .form_entry_range .form_set_01 input {
        order: 1;
    }

    #sec_contact .form_entry_range .note_01 {
       padding: 0;
    }

    /* SP版でform_set_07のnote_01_flexのパディングを維持 */
    #sec_contact .form_entry_range .form_set_07 .note_01_flex {
        padding-left: 1em;
    }

    #sec_contact .form_entry_range .form_set_01 .note_01 {
        order: 2;
        width: 100%;
    }

    /* ラジオボタンのlabel内の順序を逆にする */
    .wpcf7-form-control-wrap[data-name="start_date"] label {
        display: flex;
        flex-direction: row-reverse;
        align-items: center;
        gap: 5px;
    }    

    #sec_contact .form_entry_range .form_set_04 {
        padding: 0.9375rem 10px;
    }

    #sec_contact .form_entry_range .form_set_04 input[type="radio"],
    #sec_contact .form_entry_range .form_set_04 label[for="app_yes"],
    #sec_contact .form_entry_range .form_set_04 label[for="app_no"] {
        display: inline-block;
        flex-shrink: 0;
    }

    #sec_contact .form_entry_range .form_set_04 .note_01 {
        flex-basis: 100%;
        width: 100%;
        margin-top: 5px;
    }

    #sec_contact .form_entry_range .form_set_04 .note_01_flex,
    #sec_contact .form_entry_range .note_01_flex {
        flex-basis: 100%;
        width: 100%;
        margin: 0 auto;
        font-size: 0.875rem;
        margin-top: 5px;
    }

    #sec_contact .form_entry_range .form_set_05,
    #sec_contact .form_entry_range .form_set_06 {
        padding: 0.9375rem 10px;
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 5px;
    }

    #sec_contact .form_entry_range .form_set_05 input,
    #sec_contact .form_entry_range .form_set_06 input {
        order: 1;
    }

    #sec_contact .form_entry_range .form_set_05 .note_01,
    #sec_contact .form_entry_range .form_set_06 .note_01 {
        order: 2;
        width: 100%;
    }

    /* 住所フィールド */
    #sec_contact .form_entry_range .address-field {
        flex-direction: column;
        align-items: flex-start;
        padding: 0.625rem 10px;
    }

    #sec_contact .form_entry_range .address-field .note_01 {
        text-align: left;
    }

    #sec_contact .form_entry_range .address-label-inline {
        text-align: left;
        width: 100%;
        margin-bottom: 5px;
    }

    #sec_contact .form_entry_range .address-field {
        margin-bottom: 0;
    }

    #sec_contact .form_entry_range .address-field:has(.address-input-long) .address-label-inline {
        margin-right: 0;
    }

    /* 契約フィールド */
    #sec_contact .form_entry_range .form_set_contract {
        padding: 0 10px 0.9375rem 10px;
        display: block !important;
        text-align: center;
    }

    #sec_contact .form_entry_range .contract-label-inline {
        text-align: left;
        width: 80%;
        margin: 0 0 5px 0;
        display: block;
    }

    /* ファイルアップロード */

    .file_upload_section{
        margin: 0;
    }

    .file_upload_section .section_title_text {
        font-size: 0.875rem;
        padding-left:70px;
    }

    .file_upload_area {
        flex-direction: column;
        padding: 1.25rem 15px;
        gap: 15px;
    }

    .file_upload_area .upload_content {
        flex-direction: column;
        width: 100%;
        align-items: center;
    }

    /* 備考欄 */
    .remarks_section {
        padding: 0.9375rem 10px;
    }

    .remarks_section .remarks_title {
        font-size: 1rem;
    }

    /* プライバシー同意 */
    #sec_contact .form_privacy_range .privacy_agree_mass {
        padding: 1.25rem 10px 1.5625rem 10px;
    }

    #sec_contact .form_privacy_range .privacy_agree_mass .txt_area {
        text-align: left;
        margin-bottom: 1.5rem;
        font-size: 0.9125rem;
    }

    #sec_contact .form_privacy_range .privacy_agree_mass .check_area .checkbox-label{
        font-size: 0.9125rem;
    }

    /* 送信ボタン */
    #wrap_cont .bt_range .bt_st_01 button,
    #sec_contact .bt_range .bt_st_01 button {
        min-width: initial;
        width: 90%;
        padding: 1.125rem 20px;
        font-size: 1.0625rem;
    }

    #wrap_cont .bt_range .bt_st_01 button:before,
    #sec_contact .bt_range .bt_st_01 button:before {
        width: 20px;
        height: 20px;
        left: 5%;
    }

    #wrap_cont .bt_range,
    #sec_contact .bt_range {
        text-align: center;
    }

    #wrap_cont .bt_range ul,
    #sec_contact .bt_range ul {
        display: block;
    }

    #wrap_cont .bt_range li,
    #sec_contact .bt_range li {
        width: 100%;
        margin: 10px 0 0 0;
        text-align: center;
        display: flex;
        justify-content: center;
    }

    #wrap_cont .bt_range li:first-child,
    #sec_contact .bt_range li:first-child {
        margin: 0;
    }

    #wrap_cont .bt_range .bt_st_01 button,
    #sec_contact .bt_range .bt_st_01 button {
        margin: 0 auto;
    }

    /* ページトップ */
    .page-top {
        width: 28.5px;
        height: 52px;
        right: 1px;
        bottom: 1.25rem;
    }

    #sec_contact .form_entry_range .form_set_01 .wpcf7-form-control-wrap,
    #sec_contact .form_entry_range .form_set_04 .wpcf7-form-control-wrap,
    #sec_contact .form_entry_range .form_set_05 .wpcf7-form-control-wrap,
    #sec_contact .form_entry_range .form_set_06 .wpcf7-form-control-wrap {
        width: 100%;
        display: block;
        flex-shrink: 0;
    }
    #sec_contact .form_entry_range .form_set_address .wpcf7-form-control-wrap {
        width: 100%;
    }
    .form_set_07 {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 5px;
    }
    #sec_contact .form_entry_range .form_set_07 .wpcf7-form-control-wrap {
        width: 100%;
        padding-right: 0;
    }
    #sec_contact .form_privacy_range .privacy_agree_mass .check_area {
        text-align: left;
    }
    #wrap_cont .bt_range .bt_st_01, #sec_contact .bt_range .bt_st_01 {
        min-width: auto;
        width: 100%;
    }
    #sec_contact .form_privacy_range {
        margin-bottom: 40px;
    }
}


@media screen and (max-width: 577px) {

    #sec_contact .sec_contact_inner {
        padding: 0 0 3.75rem 0;
    }

    .flow-title {
        font-size: 1.5rem;
    }
}

.wpcf7-form-control.wpcf7-radio {
    gap: 20px;
}
.wpcf7-list-item label {
    display: flex;
}
.wpcf7-list-item label input {
    width: auto !important;
    margin-right: 10px;
}

/* 買取開始希望日のラジオボタンを横並びに */
.wpcf7-form-control-wrap[data-name="start_date"] .wpcf7-radio {
    display: flex;
    flex-direction: row;
    gap: 20px;
    flex-wrap: nowrap;
}

.wpcf7-form-control-wrap[data-name="start_date"] .wpcf7-list-item-label {
    white-space: nowrap;
}

input {
    text-align: left !important;
    font-size: 1rem !important;
}

.wpcf7-not-valid-tip {
    color: red;
    font-size: 12px;
}

#sent_section {
    text-align: center;
    padding: 50px 10px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.sent-title {
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 20px;
}
.sent-description {
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
}

.btn-back {
    display: inline-block;
    padding: 10px 20px;
    background-color: #004ab0;
    color: #ffffff;
    text-decoration: none;
    border-radius: 5px;
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-top: 20px;
    transition: all 0.3s ease;
}
.btn-back:hover {
    background-color: #003890;
    color: #ffffff;
    opacity: 0.8;
}

@media screen and (max-width: 767px) {
    #sent_section {
        padding: 30px 10px;
    }
    .sent-title {
        font-size: 2rem;
    }
    .sent-description {
        font-size: 1rem;
    }
    .btn-back {
        font-size: 1rem;
    }
}

/* ========================================
   Contact Form 7 - Submit Button Animation
   ======================================== */

/* 送信中のボタンアニメーション */
.wpcf7-submit.is-submitting {
    animation: buttonPulse 1s ease-in-out infinite;
}

/* Fadein/Fadeout アニメーション */
@keyframes buttonPulse {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.3;
    }
    100% {
        opacity: 1;
    }
}