/* ==========================================================================
   応募フォーム（Contact Form 7）のデザイン
   ・応募ページ（固定ページ）だけで読み込む。設置場所：子テーマの internship/css/entry.css
   ・対象は <div class="ip-form"> の中だけ（テーマや他のページには影響しない）
   ・LPと同じ配色（青 #0096D6）、黒フチのカード、ピル型ボタンに揃えている
   ========================================================================== */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@700&display=swap");
.ip-form {
  --ip-accent: #0096D6;
  --ip-accent-dk: #0077AD;
  --ip-ink: #1E2430;
  --ip-muted: #6B7280;
  --ip-line: #CDD3DB;
  max-width: 760px;
  margin: 0 auto;
  padding: 28px 20px 32px;
  border: 0 !important;  /* 外枠の黒線はなし */
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(25, 79, 134, .10);  /* 背景（#F0F5F9）との境目が分かる程度の、薄い青みの影 */
  background: #fff;
  color: var(--ip-ink);
  font-size: 16px;
  line-height: 1.7;
  box-sizing: border-box;
}
.ip-form *, .ip-form *::before, .ip-form *::after { box-sizing: border-box; }
.ip-form p { margin: 0; }

.ip-form .ip-form-row { margin: 0 0 24px; }
.ip-form .ip-form-label {
  display: flex; align-items: center; gap: 8px; margin: 0 0 8px;
  font-size: 15px; font-weight: 700; color: var(--ip-ink);
}
.ip-form .ip-form-req {
  display: inline-block; padding: 1px 9px; border-radius: 999px;
  background: #D32F2F; color: #fff; font-size: 11px; font-style: normal; font-weight: 700; line-height: 1.7;
}
.ip-form .ip-form-opt {
  display: inline-block; padding: 1px 9px; border-radius: 999px;
  background: #E7EBF0; color: var(--ip-muted); font-size: 11px; font-style: normal; font-weight: 700; line-height: 1.7;
}
.ip-form .ip-form-hint { display: block; margin: 0 0 8px; font-size: 13px; color: var(--ip-muted); }

/* 入力欄 */
.ip-form .wpcf7-form-control-wrap { display: block; }
.ip-form input[type="text"],
.ip-form input[type="email"],
.ip-form input[type="tel"],
.ip-form select,
.ip-form textarea {
  display: block; width: 100%; min-height: 50px; padding: 12px 14px;
  border: 1.5px solid transparent; border-radius: 10px; background: #F0F4F5;  /* 入力欄は薄いグレー（枠線なし。フォーカス時だけ青い枠） */
  color: var(--ip-ink); font: inherit; font-size: 16px; line-height: 1.5;
  box-shadow: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.ip-form textarea { height: 96px; min-height: 96px; resize: vertical; }
.ip-form input:focus,
.ip-form select:focus,
.ip-form textarea:focus {
  outline: none; border-color: var(--ip-accent); box-shadow: 0 0 0 4px rgba(0, 150, 214, .18);
}
.ip-form select,
.ip-form .wpcf7-form-control-wrap select.wpcf7-select {
  width: 100% !important; max-width: 100% !important; min-width: 0 !important;
  appearance: none !important; -webkit-appearance: none !important;
  padding-right: 44px !important; cursor: pointer; text-overflow: ellipsis;
  background-color: #F0F4F5 !important;
  border: 1.5px solid transparent !important;  /* テーマが付けるグレーの枠線を打ち消し、他の入力欄とそろえる */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231E2430' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 12px 8px !important;
}
/* プルダウンも、フォーカス時だけ青い枠（上の !important の透明な枠を、フォーカス時に上書き） */
.ip-form select:focus, .ip-form .wpcf7-form-control-wrap select.wpcf7-select:focus { border-color: var(--ip-accent) !important; }
.ip-form .wpcf7-form-control-wrap { position: relative; }
.ip-form .wpcf7-form-control-wrap::before,
.ip-form .wpcf7-form-control-wrap::after { content: none !important; display: none !important; }
.ip-form select::-ms-expand { display: none; }
/* CF7が自動で入れる <br> は表示しない */
.ip-form br { display: none; }
.ip-form .ip-form-note br { display: inline; }

/* 生年月日：年・月・日を横に並べる（CF7が中身を <p> で包んでも横並びになるようにしている） */
.ip-form .ip-form-inline,
.ip-form .ip-form-inline > p { display: flex !important; flex-wrap: nowrap; gap: 10px; margin: 0; }
.ip-form .ip-form-inline > p { flex: 1 1 100%; }
.ip-form .ip-form-inline .wpcf7-form-control-wrap { flex: 1 1 0; min-width: 0; }
.ip-form .ip-form-inline .wpcf7-form-control-wrap:first-child { flex: 1.4 1 0; }

/* 注意書き */
.ip-form .ip-form-note {
  margin: 0 0 24px; padding: 14px 16px; border-radius: 12px;
  background: #E5F5FC; font-size: 13px; line-height: 1.8; color: #045C82;
}

/* 同意チェック */
.ip-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.ip-form .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-size: 14px; }
.ip-form .wpcf7-acceptance input[type="checkbox"] { flex-shrink: 0; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--ip-accent); }
.ip-form .wpcf7-acceptance a { color: var(--ip-accent); text-decoration: underline; }

/* 送信ボタン */
.ip-form .ip-form-submit { margin: 28px 0 0; text-align: center; }
.ip-form input[type="submit"], .ip-form .wpcf7-submit {
  display: inline-block; width: 100%; max-width: 360px; min-height: 58px; padding: 0 32px;
  border: 0; border-radius: 999px; background: var(--ip-accent); color: #fff;
  font: inherit; font-size: 17px; font-weight: 700; letter-spacing: .06em; cursor: pointer;
  box-shadow: 0 8px 18px rgba(0, 120, 173, .28); transition: background .15s ease, transform .15s ease;
}
.ip-form input[type="submit"]:hover { background: var(--ip-accent-dk); transform: translateY(-1px); }
.ip-form input[type="submit"]:focus-visible { outline: 3px solid #FFD54F; outline-offset: 3px; }

/* 入力エラー・送信結果のメッセージ */
.ip-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; font-weight: 700; color: #D32F2F; }
.ip-form .wpcf7-not-valid { border-color: #D32F2F; }
.ip-form .wpcf7-response-output {
  margin: 24px 0 0; padding: 14px 16px; border: 2px solid var(--ip-accent); border-radius: 12px; font-size: 14px;
}
.ip-form .wpcf7 form.invalid .wpcf7-response-output,
.ip-form .wpcf7 form.unaccepted .wpcf7-response-output { border-color: #D32F2F; }
.ip-form .wpcf7 form.sent .wpcf7-response-output { border-color: #2E9E5B; }

@media (min-width: 768px) {
  .ip-form { padding: 44px 48px 48px; }
}


/* ==========================================================================
   テーマ（SOLARIS）の指定に負けないための上書き
   ・テーマが CF7 の外枠に付けている灰色の背景・枠線・余白をなくす（.ip-form を含む外枠だけ）
   ・フォントと文字サイズを、LPと同じ Noto Sans JP・16px に揃える
   ========================================================================== */
.wpcf7:has(.ip-form),
.wpcf7-form:has(.ip-form),
.wpcf7 form:has(.ip-form) {
  background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important;
  width: 100% !important; max-width: none !important; margin: 0 !important; float: none !important;
}
/* カードは、外枠いっぱいの幅の中で常に中央に置く */
.ip-form { margin-left: auto !important; margin-right: auto !important; }
.ip-form,
.ip-form input,
.ip-form select,
.ip-form textarea,
.ip-form label {
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif !important;
}
.ip-form input[type="text"],
.ip-form input[type="email"],
.ip-form input[type="tel"],
.ip-form select,
.ip-form textarea { font-size: 16px !important; line-height: 1.5 !important; color: #1E2430 !important; }
/* 記入例（placeholder）：入力した文字と区別できるよう灰色（#6B7280・白地でコントラスト比AA以上）。Firefoxで薄くなるのを防ぐ */
.ip-form input::placeholder, .ip-form textarea::placeholder { color: #6B7280 !important; opacity: 1 !important; }
.ip-form .ip-form-label { font-size: 15px !important; font-weight: 700 !important; }
.ip-form .ip-form-req,
.ip-form .ip-form-opt { font-style: normal !important; font-weight: 700 !important; font-size: 11px !important; }
.ip-form .ip-form-hint { font-size: 13px !important; }

/* フォーム下部（ヒント・注意書き・備考・同意）もテーマの指定に負けないようにする */
.ip-form p { margin: 0 !important; padding: 0 !important; }
.ip-form .ip-form-row { margin: 0 0 24px !important; }
.ip-form .ip-form-label { margin: 0 0 8px !important; }
.ip-form .ip-form-hint { margin: 0 0 8px !important; font-size: 13px !important; line-height: 1.7 !important; color: #6B7280 !important; }
.ip-form .ip-form-note, .ip-form .ip-form-note p { margin: 0 !important; font-size: 13px !important; line-height: 1.8 !important; color: #045C82 !important; }
.ip-form .ip-form-note { margin-bottom: 24px !important; padding: 14px 16px !important; }
/* 備考欄：高さの !important は付けない（付けると、右下の角をドラッグして縦に伸ばせなくなる）。最小の高さだけ固定。枠線は他の入力欄と同じく「なし」（フォーカス時だけ青） */
.ip-form.ip-form textarea { height: 96px; min-height: 96px !important; max-height: none !important; resize: vertical !important; border: 1.5px solid transparent !important; }
.ip-form textarea:focus { border-color: var(--ip-accent) !important; }
.ip-form .wpcf7-acceptance, .ip-form .wpcf7-acceptance label, .ip-form .wpcf7-list-item-label { font-size: 14px !important; line-height: 1.7 !important; color: #1E2430 !important; }
.ip-form .wpcf7-acceptance .wpcf7-list-item { margin: 0 !important; }

/* ページ全体の背景を、LPのFOR YOU以降と同じ背景色（#F0F5F9）にする。フォームを含む要素（html・body・テーマの本文の外枠）だけが対象 */
*:has(.ip-form) { background-color: #F0F5F9 !important; background-image: none !important; }
.ip-form { background-color: #fff !important; }
.ip-form .ip-form-hint { display: block !important; }

/* さらに強い指定（クラスを重ねて詳細度を上げる）：テーマの指定が強い場合でも、ラベル・説明文・間隔を固定する */
.ip-form.ip-form .ip-form-row { margin: 0 0 24px !important; }
.ip-form.ip-form .ip-form-row > p, .ip-form.ip-form .ip-form-row p { margin: 0 !important; padding: 0 !important; }
.ip-form.ip-form .ip-form-row .ip-form-label { display: flex !important; align-items: center !important; gap: 8px !important; margin: 0 0 8px !important; font-size: 15px !important; line-height: 1.5 !important; font-weight: 700 !important; color: #1E2430 !important; }
.ip-form.ip-form .ip-form-row .ip-form-hint { display: block !important; margin: 0 0 8px !important; padding: 0 !important; font-size: 13px !important; line-height: 1.7 !important; color: #6B7280 !important; font-weight: 400 !important; }
.ip-form.ip-form .ip-form-row br { display: none !important; }

/* フォームのタイトル（カードの一番上）：LPのセクション見出し（SCHEDULEなど）と同じ作り。上に英字（Montserrat Bold・青）、下に日本語。中央揃えで、下に青い横線 */
.ip-form.ip-form .ip-form-ttl {
  margin: 0 0 32px !important; padding: 0 0 18px !important; position: relative;
  border: 0 !important; background: none !important;
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif !important;
  font-size: 16px !important; font-weight: 700 !important; line-height: 1.5 !important; letter-spacing: .01em !important; white-space: nowrap !important;
  text-align: center !important; color: #1E2430 !important;
}
.ip-form.ip-form .ip-form-ttl::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 56px; height: 4px; margin-left: -28px;
  border-radius: 2px; background: #0096D6;
}
.ip-form.ip-form .ip-form-ttl .ip-form-en {
  display: block !important; margin: 0 0 4px !important;
  font-family: 'Montserrat', 'Arial', sans-serif !important; font-size: min(10.5vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.01em !important;
  color: #194F86 !important;
}
.ip-form.ip-form .ip-form-ttl .ip-form-ja { display: block !important; }
@media (min-width: 768px) {
  .ip-form.ip-form .ip-form-ttl { font-size: 18px !important; }
  .ip-form.ip-form .ip-form-ttl .ip-form-en { font-size: 46px !important; }
}
@media (min-width: 1024px) {
  .ip-form.ip-form .ip-form-ttl { font-size: 20px !important; }
  .ip-form.ip-form .ip-form-ttl .ip-form-en { font-size: 54px !important; }
}

/* 「私は人間です」（hCaptcha。プラグインが出す .h-captcha が対象）：枠の内側のチェックボックスが、個人情報保護方針のチェックボックスと左端がそろうよう、枠を左へ16pxずらす */
.ip-form.ip-form .h-captcha, .ip-form.ip-form .wpcf7-form-control-wrap:has(> .h-captcha) { display: block; width: fit-content; margin: 0 0 8px -16px !important; }
/* .h-captcha が .wpcf7-form-control-wrap の中に入っている場合は、外側だけに余白を付ける（内側にも付くと、2回ぶんずれる） */
.ip-form.ip-form .wpcf7-form-control-wrap > .h-captcha { margin-left: 0 !important; }
/* 送信中のぐるぐる（スピナー）は、場所を取らないようにする（取ると、「応募する」ボタンが中央から左にずれる） */
.ip-form .ip-form-submit { position: relative; }
.ip-form .wpcf7-spinner { position: absolute !important; margin: 14px 0 0 14px !important; }

/* ==========================================================================
   パソコン（1024px以上）：項目名を左、入力欄を右に横並びにする
   ・スマホ・タブレットは、これまでどおり縦並び
   ・CF7が自動で入れる <p> は display: contents で外し、項目名・説明文・入力欄を同じ行に並べる
   ========================================================================== */
@media (min-width: 1024px) {
  .ip-form.ip-form { max-width: 900px; padding: 40px 48px 44px; }
  .ip-form.ip-form .ip-form-row {
    display: grid !important; grid-template-columns: 250px minmax(0, 1fr); column-gap: 24px; align-items: start;
    margin: 0 !important; padding: 20px 0 !important; border-top: 1px solid #E1E6EA;
  }
  .ip-form.ip-form .ip-form-row > p { display: contents !important; }
  /* 左の列：項目名（1段目）・説明文（2段目）。入力欄の高さ（50px）の中央に、項目名の文字が来るようにずらす */
  .ip-form.ip-form .ip-form-row .ip-form-label { grid-column: 1; grid-row: 1; margin: 14px 0 0 !important; flex-wrap: nowrap; }
  .ip-form.ip-form .ip-form-row .ip-form-req, .ip-form.ip-form .ip-form-row .ip-form-opt { flex-shrink: 0; white-space: nowrap; }
  .ip-form.ip-form .ip-form-row .ip-form-hint { grid-column: 1; grid-row: 2; margin: 6px 0 0 !important; }
  /* 右の列：入力欄（項目名・説明文以外のすべて） */
  .ip-form.ip-form .ip-form-row > :not(.ip-form-label):not(.ip-form-hint):not(p),
  .ip-form.ip-form .ip-form-row > p > :not(.ip-form-label):not(.ip-form-hint) { grid-column: 2; grid-row: 1 / span 2; }
  /* 開催地・第一希望・第二希望は1つのまとまり。第一希望・第二希望の上の区切り線は引かない（上の余白も詰める） */
  .ip-form.ip-form .ip-form-row:has(#ip-date1), .ip-form.ip-form .ip-form-row:has(#ip-date2) { border-top: 0 !important; padding-top: 0 !important; }
  /* 個人情報保護方針のチェックは、入力欄の列ではなく、フォームの左端（項目名と同じ左端）に置く。その下の「私は人間です」も、中のチェックが同じ左端にそろう（枠は上の基本ルールで16px左へ出している） */
  .ip-form.ip-form .ip-form-row.ip-form-row:has(.wpcf7-acceptance) > :not(p),
  .ip-form.ip-form .ip-form-row.ip-form-row:has(.wpcf7-acceptance) > p > * { grid-column: 1 / -1 !important; grid-row: auto !important; }
  /* 注意書き・送信ボタン：入力欄の左端にそろえる／中央に置く */
  .ip-form.ip-form .ip-form-note { margin: 4px 0 20px 274px !important; }
  .ip-form.ip-form .ip-form-submit { margin-top: 32px; }
}

/* ==========================================================================
   応募完了ページ（固定ページ entry-thanks）。本文のHTMLは cf7/thanks-page.html
   ========================================================================== */
*:has(.ip-thanks) { background-color: #F0F5F9 !important; background-image: none !important; }
.ip-thanks.ip-thanks {
  max-width: 760px; margin: 0 auto !important; padding: 48px 20px 56px !important; box-sizing: border-box;
  border: 0 !important; border-radius: 20px; background: #fff !important; box-shadow: 0 4px 20px rgba(25, 79, 134, .10);
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif !important; color: #1E2430 !important; text-align: center;
}
.ip-thanks.ip-thanks .ip-thanks-lead { margin: 0 0 36px !important; padding: 0 !important; font-size: 15px !important; font-weight: 700 !important; line-height: 2.2 !important; letter-spacing: .04em !important; color: #1E2430 !important; text-wrap: balance; }
.ip-thanks.ip-thanks .ip-thanks-note { margin: 0 auto !important; padding: 20px 20px !important; border: 2px solid #D9D9D9 !important; border-radius: 24px; background: #fff !important; font-size: 13px !important; font-weight: 400 !important; line-height: 2.2 !important; letter-spacing: 0 !important; text-align: left; color: #1E2430 !important; }
@media (min-width: 768px) {
  .ip-thanks.ip-thanks { padding: 72px 56px 80px !important; }
  .ip-thanks.ip-thanks .ip-thanks-lead { font-size: 18px !important; margin-bottom: 44px !important; }
  .ip-thanks.ip-thanks .ip-thanks-note { padding: 24px 32px !important; font-size: 14px !important; }
}

/* 「TOPに戻る」リンク（応募ページ・応募完了ページ。カードの下の中央に置く） */
.ip-back.ip-back { margin: 28px 0 0 !important; padding: 0 !important; text-align: center !important; font-size: 15px !important; line-height: 1.6 !important; }
.ip-back.ip-back a { color: #0077AD !important; font-weight: 500 !important; text-decoration: underline !important; text-underline-offset: 3px; }
.ip-back.ip-back a:hover { color: #005A85 !important; text-decoration: none !important; }
.ip-back.ip-back a:focus-visible { outline: 3px solid #FFD54F; outline-offset: 3px; border-radius: 2px; }
