@charset "UTF-8";
/* ================================================
   フォーム共通スタイル (page-forms.css)
   contact / entry / corporate_visit で共通使用
   ================================================ */

/* 注意書き */
.note {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 30px;
}
.note span {
    font-weight: bold;
    background: #fff100;
    padding: 3px 5px;
}
.note02 a { text-decoration: underline; }

/* フォーム全体 */
.mfp-form-wrap {
    margin-top: 75px;
}

/* テーブル */
.mailform.table01 {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 70px;
}
.mailform.table01 tr {
    border-bottom: 1px solid #22ac38;
}
.mailform.table01 tr:first-child {
    border-top: 1px solid #22ac38;
}
.mailform.table01 th {
    width: 30%;
    padding: 18px 15px;
    font-size: 14px;
    font-weight: bold;
    vertical-align: middle;
    text-align: left;
}
.mailform.table01 td {
    padding: 14px 10px;
    vertical-align: middle;
}

/* 必須 */
.must { color: #ff0000; }

/* 入力欄 */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
    font-size: 14px;
    line-height: 34px;
    padding-left: 5px;
    width: 80%;
    border: 1px solid #ccc;
    box-sizing: border-box;
}
.wpcf7 input.w20 { width: 20%; }
.wpcf7 input.w30 { width: 50%; }
.wpcf7 input.w40 { width: 60%; }
.wpcf7 textarea {
    width: 80% !important;
    height: 180px !important;
    border: 1px solid #ccc;
    padding: 5px;
    font-size: 14px;
    box-sizing: border-box;
}
.wpcf7 select { font-size: 14px !important; border: 1px solid #ccc; }

/* チェックボックス・ラジオ */
.oubo .wpcf7-list-item {
    display: block;
    margin: 6px 0;
}
.oubo .wpcf7-list-item label {
    display: block !important;
    font-size: 14px;
    cursor: pointer;
}
.oubo .wpcf7-list-item input[type="checkbox"],
.oubo .wpcf7-list-item input[type="radio"] {
    margin-right: 6px;
    vertical-align: middle;
    width: auto !important;
}

/* 住所リスト */
.address-list {
    list-style: none !important;
    padding: 0;
    margin: 0;
}
.address-list li {
    margin: 10px 0;
    white-space: nowrap;
    list-style: none !important;
}
.address-list li::before,
.address-list li::marker {
    display: none !important;
    content: none !important;
}
.address-list li span {
    display: inline-block;
    font-size: 14px;
    width: 130px;
    margin-right: 10px;
    vertical-align: middle;
    white-space: nowrap;
}
.address-list li .wpcf7-form-control-wrap {
    display: inline-block;
    vertical-align: middle;
    width: calc(100% - 150px);
}
.address-list li input {
    width: 100% !important;
    box-sizing: border-box;
}
.address-list li select {
    width: auto !important;
    min-width: 150px;
    box-sizing: border-box;
}

/* セクション見出し（entry / corporate_visit用） */
.form-section-title {
    font-size: 18px;
    font-weight: bold;
    border-left: 4px solid #22ac38;
    padding-left: 12px;
    margin: 40px 0 20px;
}

/* ボタン共通 */
.mfp_buttons { text-align: center; margin-top: 40px; }

/* contact：緑ボタン */
.wpcf7 input.btn-contact {
    display: block;
    padding: 18px 0;
    background: url(../images/common/arrow03.png) #22ac38 no-repeat 90% 50%;
    background-size: 13px;
    width: 280px;
    color: #fff;
    text-align: center;
    font-size: 14px;
    line-height: 1;
    font-weight: bold;
    border: none;
    margin: 0 auto;
    cursor: pointer;
    border-radius: 0;
}

/* entry / corporate_visit：青ボタン */
.wpcf7 input.btn-entry {
    display: block;
    padding: 18px 0;
    background: url(../images/common/arrow03.png) #22ac38 no-repeat 90% 50%;
    background-size: 13px;
    width: 280px;
    color: #fff;
    text-align: center;
    font-size: 14px;
    line-height: 1;
    font-weight: bold;
    border: none;
    margin: 0 auto;
    cursor: pointer;
    border-radius: 0;
}

/* バリデーション */
/* バリデーションエラースタイル */
.wpcf7-not-valid-tip {
    color: #ff0000;
    font-size: 13px;
    display: block;
    margin-top: 4px;
}

/* エラー時の入力欄背景 */
.wpcf7-not-valid {
    background-color: #fde8e8 !important;
    border-color: #ff0000 !important;
}

/* チェックボックス・ラジオのエラー */
.wpcf7-form-control.wpcf7-not-valid .wpcf7-list-item-label {
    color: #ff0000;
}

/* 送信エラーメッセージ */
.wpcf7-response-output {
    margin: 20px 0 !important;
    padding: 12px 20px !important;
    border: 2px solid #ff0000 !important;
    color: #ff0000;
    font-size: 14px;
    background: #fff !important;
}
/* CF7レスポンス下余白調整 */
.wpcf7 .wpcf7-response-output {
    margin-bottom: 0 !important;
}

/* 送信成功メッセージ */
.wpcf7-mail-sent-ok {
    border-color: #22ac38 !important;
    color: #22ac38 !important;
}

@media screen and (max-width: 650px) {
    .mailform.table01 th,
    .mailform.table01 td { display: block; width: 100%; padding: 10px; }
    .mailform.table01 th { border-bottom: none; padding-bottom: 4px; }
    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 input[type="tel"],
    .wpcf7 textarea { width: 100% !important; }
    .address-list li { white-space: normal; }
    .address-list li span { width: auto; display: block; white-space: normal; margin-bottom: 4px; }
    .address-list li .wpcf7-form-control-wrap { width: 100%; }
    .address-list li input { width: 100% !important; }
    .wpcf7 input.btn-contact,
    .wpcf7 input.btn-entry { width: 95%; }
}

/* CF7デフォルトスタイルの打ち消し */
.wpcf7 th,
.wpcf7 td,
.mailform.table01 th,
.mailform.table01 td {
    background: none !important;
    background-color: transparent !important;
}
.wpcf7-form-control-wrap {
    background: none !important;
}

/* .table01 ul li の背景点を住所リストのみ打ち消し */
.mailform.table01 .address-list li {
    background: none !important;
    padding-left: 0 !important;
}

/* 住所入力欄の幅を直接指定 */
.address-list li input[type="text"] {
    width: 300px !important;
}
.address-list li select {
    width: 160px !important;
}

/* エントリー・会社見学会フォームの青を緑に統一 */
#entry .mailform.table01,
#corporate_visit .mailform.table01 {
    border-color: #22ac38;
}
#entry .mailform.table01 tr,
#corporate_visit .mailform.table01 tr {
    border-color: #22ac38;
}
#entry .mailform.table01 tr:first-child,
#corporate_visit .mailform.table01 tr:first-child {
    border-top-color: #22ac38;
}
#entry .must,
#corporate_visit .must {
    color: #ff0000;
}
#entry .form-section-title,
#corporate_visit .form-section-title {
    border-left-color: #22ac38;
    color: #333;
}

/* page-recruit.cssの青文字をフォームページで上書き */
#entry .mailform.table01 th,
#corporate_visit .mailform.table01 th {
    color: #333 !important;
    background: none !important;
}
#entry .must,
#corporate_visit .must,
#contact .must {
    color: #ff0000 !important;
}

/* 生年月日：横並び */
.mailform.table01 td .wpcf7-form-control-wrap[data-name="birth-year"],
.mailform.table01 td .wpcf7-form-control-wrap[data-name="birth-month"],
.mailform.table01 td .wpcf7-form-control-wrap[data-name="birth-day"] {
    display: inline-block;
    vertical-align: middle;
}
.mailform.table01 td p:has([data-name="birth-year"]) br {
    display: none;
}
/* br非対応ブラウザ向けにwrapのみで制御 */
[data-name="birth-year"] ~ br,
[data-name="birth-month"] ~ br {
    display: none;
}

/* 性別ラジオボタン：テキスト左にボタン */
.wpcf7-radio .wpcf7-list-item {
    display: inline-block;
    margin-right: 20px;
}
.wpcf7-radio .wpcf7-list-item label {
    display: flex;
    align-items: center;
    flex-direction: row;
    gap: 6px;
    cursor: pointer;
}
.wpcf7-radio .wpcf7-list-item input[type="radio"] {
    width: auto !important;
    margin: 0;
    flex-shrink: 0;
}
.wpcf7-list-item-label {
    display: inline;
}

/* 生年月日：下余白 */
.mailform.table01 td p:has([data-name="birth-year"]) {
    margin-bottom: 12px;
}

/* 満年齢：横幅を小さく・歳を同行に */
.wpcf7-form-control-wrap[data-name="age"] {
    display: inline-block !important;
}
.wpcf7-form-control-wrap[data-name="age"] input {
    width: 80px !important;
    display: inline-block !important;
}

@media screen and (max-width: 650px) {
    .wpcf7-form-control-wrap[data-name="age"] input {
        width: 80px !important;
    }
}

/* 住所リスト内のエラーテキストを下に表示 */
.address-list li .wpcf7-not-valid-tip {
    display: block;
    width: 100%;
    margin-top: 4px;
}
.address-list li .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}
.address-list li {
    white-space: normal;
}

/* フォームラッパーにpadding確保（CF7のresponse-outputが外に出ないよう） */
.form-wrap-outer {
    padding-bottom: 40px;
}
