/* ===================================================
   page-contact.css — お問い合わせ（CF7）
   =================================================== */

.p-contact {
    display: block;
}
.p-contact > .l-page-content {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--space-5xl) var(--space-md);
}

/* ----- フォームグループ（dl） ----- */
.p-contact .cf7_form {
    margin-bottom: var(--space-3xl);
    border-radius: var(--radius-md);
    overflow: hidden;
}

/* dt: ラベル＋必須/任意バッジ（左260px） */
.p-contact .cf7_form > dt {
    float: left;
    width: 260px;
    min-height: 60px;
    padding: var(--space-md) 0;
    font-size: var(--fz-base);
    font-weight: 700;
    line-height: 1.6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--color-text-dark);
}

/* dd: 入力エリア（左260px分の余白） */
.p-contact .cf7_form > dd {
    padding: var(--space-md) 0 var(--space-md) 260px;
    font-size: var(--fz-base);
    line-height: 1.6;
    border-bottom: 3px solid var(--color-white);
    min-height: 60px;
}
.p-contact .cf7_form > dd:last-of-type {
    border-bottom: none;
}

/* 必須/任意バッジ */
.p-contact .cf7_form .required,
.p-contact .cf7_form .will {
    flex-shrink: 0;
    margin-right: var(--space-md);
    padding: 2px 10px;
    font-size: var(--fz-xs);
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-white);
    background: var(--color-primary);
    border-radius: 8px;
}
.p-contact .cf7_form .will {
    background: #EFEFEF;
    color: #006CBF;
}

/* ----- input / select / textarea ----- */
.p-contact .cf7_form .wpcf7-form-control-wrap {
    display: block;
}
.p-contact .cf7_form input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]),
.p-contact .cf7_form select,
.p-contact .cf7_form textarea {
    width: 100%;
    padding: 10px;
    font-family: inherit;
    font-size: var(--fz-base);
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid var(--color-border-dark);
    border-radius: 8px;
    transition: var(--transition-base);
    box-sizing: border-box;
}
.p-contact .cf7_form input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):focus,
.p-contact .cf7_form select:focus,
.p-contact .cf7_form textarea:focus {
    border-color: var(--color-primary);
    outline: none;
    box-shadow: 0 0 4px var(--color-primary);
}
.p-contact .cf7_form textarea {
    height: 150px;
    line-height: 1.6;
    resize: vertical;
}

/* 幅ユーティリティ */
.p-contact .cf7_form .width80  { max-width: 80px;  }
.p-contact .cf7_form .width100 { max-width: 100px; }
.p-contact .cf7_form .width150 { max-width: 150px; }
.p-contact .cf7_form .width200 { max-width: 200px; }
.p-contact .cf7_form .width250 { max-width: 250px; }
.p-contact .cf7_form .width300 { max-width: 300px; }
.p-contact .cf7_form .width400 { max-width: 400px; }

/* ----- radio / checkbox ----- */
.p-contact .cf7_form .wpcf7-radio,
.p-contact .cf7_form .wpcf7-checkbox {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
}
.p-contact .cf7_form .wpcf7-list-item {
    margin: 0 !important;
}
.p-contact .cf7_form .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    cursor: pointer;
}
.p-contact .cf7_form .wpcf7-list-item input[type=radio],
.p-contact .cf7_form .wpcf7-list-item input[type=checkbox] {
    accent-color: var(--color-primary);
    width: 18px;
    height: 18px;
    cursor: pointer;
}

/* ----- file ----- */
.p-contact .cf7_form input[type=file] {
    font-size: var(--fz-sm);
    color: var(--color-text);
}

/* ----- 送信ボタン / 戻るボタン共通の基本スタイル ----- */
.p-contact .submit {
    margin-top: var(--space-2xl);
}
.p-contact .submit input[type=submit],
.p-contact .submit .wpcf7-submit,
.p-contact .wpcf7-previous {
    box-sizing: border-box;
    display: block;
    width: fit-content;
    min-width: 280px;
    margin-left: auto;
    margin-right: auto;
    padding: var(--space-md) var(--space-3xl);
    font-size: var(--fz-lg);
    font-weight: 700;
    color: var(--color-white);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: var(--transition-base);
}
.p-contact .submit input[type=submit]:hover,
.p-contact .submit .wpcf7-submit:hover,
.p-contact .wpcf7-previous:hover {
    opacity: 0.7;
}

/* ----- 個別の背景色のみ分岐 ----- */
.p-contact .submit input[type=submit],
.p-contact .submit .wpcf7-submit {
    background: var(--color-primary);
}
.p-contact .wpcf7-previous {
    margin-top: var(--space-md);
    background: #EFEFEF;
    color: #006CBF;
}

/* CF7 のレスポンス枠の体裁 */
.p-contact .wpcf7-response-output {
    margin: var(--space-md) 0 0;
    padding: var(--space-sm) var(--space-md);
    border-radius: 8px;
    font-size: var(--fz-sm);
}

/* CF7 個別フィールドのエラーチップ */
.p-contact .wpcf7-not-valid-tip {
    display: block;
    margin-top: 6px;
    padding: 2px 9px;
    background: #dc3232;
    color: #fff;
    font-size: var(--fz-sm);
    font-weight: 700;
    border-radius: 8px;
}
.p-contact .wpcf7-not-valid {
    border-color: #dc3232 !important;
    background-color: #fff7f7;
}

.privacy  {
    text-align: center;
}
.privacy .wpcf7-list-item {
    margin-left: 32px;
}
.privacy span.wpcf7-list-item-label {
    font-size: 20px;
}
.privacy span.wpcf7-list-item-label a {
    color: var(--color-primary);
}
.privacy input[type="checkbox"] {
    background: #fff;
    border: 1px solid #ccc;
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    left: 0;
    margin-top: 9px;
    position: absolute;
}

/* ===================================================
   タブレット (max-width: 1024px)
   =================================================== */
@media screen and (max-width: 1024px) {
    .p-contact > .l-page-content {
        padding: var(--space-3xl) var(--space-md);
    }
}

/* ===================================================
   SP (max-width: 600px) — dt/dd を縦積みに
   =================================================== */
@media screen and (max-width: 600px) {
    .p-contact > .l-page-content {
        padding: var(--space-2xl) var(--space-md);
    }
    .p-contact .cf7_form > dt {
        float: none;
        width: 100%;
        min-height: auto;
        padding: var(--space-md) 0 var(--space-xs);
    }
    .p-contact .cf7_form > dd {
        padding: 0 0 var(--space-md);
        border-bottom: 1px solid var(--color-white);
    }
    .p-contact .submit input[type=submit],
    .p-contact .submit .wpcf7-submit {
        min-width: 200px;
        font-size: var(--fz-base);
    }
}

/* ===================================================
   c-modal--privacy — 個人情報保護方針モーダル
   =================================================== */
.c-modal--privacy .c-modal__content {
    width: min(90vw, 880px);
    max-height: 86vh;
    background: var(--color-white);
    border-radius: var(--radius-md);
    padding: var(--space-3xl) var(--space-2xl);
    overflow-y: auto;
    display: block;
    text-align: left;
    line-height: 1.8;
}
.c-modal--privacy .c-modal__content h2 {
    font-size: var(--fz-xl);
    font-weight: 700;
    margin: var(--space-xl) 0 var(--space-md);
    color: var(--color-text-dark);
}
.c-modal--privacy .c-modal__content h2:first-child {
    margin-top: 0;
}
.c-modal--privacy .c-modal__content p {
    margin: 0 0 var(--space-md);
    font-size: var(--fz-base);
}
.c-modal--privacy .c-modal__content ol,
.c-modal--privacy .c-modal__content ul {
    margin: 0 0 var(--space-md) var(--space-lg);
    padding: 0;
}
.c-modal--privacy .c-modal__content li {
    margin-bottom: var(--space-xs);
}
.c-modal--privacy .c-modal__content a {
    color: var(--color-link);
    text-decoration: underline;
}
.c-modal--privacy .p-privacy__intro,
.c-modal--privacy .p-privacy__item {
    margin-bottom: var(--space-xl);
}
.c-modal--privacy .p-privacy__item:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 600px) {
    .c-modal--privacy .c-modal__content {
        padding: var(--space-xl) var(--space-md);
        max-height: 82vh;
    }
}
