/* WordPress 用の追加スタイル
   design/html/style.css（デザインそのまま）に対して、
   WordPress の出力に合わせて足りない分だけを補う。 */

/* NEWS一覧：アイキャッチ画像 */
.news-thumb-img { display: block; width: 100%; height: 112px; object-fit: cover; border-radius: 4px; }
@media (max-width: 767px) { .news-thumb-img { height: 44vw; } }

/* 画像が無いときの NO IMAGE */
.noimg {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px;
  height: 112px; border-radius: 4px; box-sizing: border-box;
  background: linear-gradient(160deg, #F4F8FB 0%, #EAF1F5 100%);
  border: 1px solid #E4ECF1; color: #A9BCC9;
}
.noimg-icon { display: block; width: 30px; height: auto; fill: none; stroke: currentColor; stroke-width: 1.1; stroke-linecap: round; stroke-linejoin: round; }
.noimg-text { font-size: 9px; letter-spacing: .26em; color: currentColor; }
@media (max-width: 767px) { .noimg { height: 44vw; gap: 12px; } .noimg-icon { width: 38px; } }
.noimg-main { height: 420px; }
.noimg-main .noimg-icon { width: 54px; }
@media (max-width: 767px) { .noimg-main { height: 56vw; } }

/* ウィジェットエリア
   管理画面（外観 → ウィジェット）で入れた内容を、デザインに合わせて表示する。 */
.wgt-area .wgt-title { font-size: 17px; font-weight: 600; color: #252A2D; line-height: 1.6; }
.wgt-area p, .wgt-area li { font-size: 14px; line-height: 1.95; color: #4A5459; }
.wgt-area p { margin: 0; }
.wgt-area ul, .wgt-area ol { margin: 6px 0 0; padding-left: 1.2em; }
.wgt-area a { color: #365F7D; }

/* 事業内容（法人概要）：定義リストの右側の欄にそのまま収まるようにする */
.wgt-business { flex-grow: 1; }
.wgt-business p { font-size: 16px; line-height: 1.9; color: #3A4145; margin: 0; }

/* Contact Form 7
   デザインの見た目のまま、実際に入力・送信できるようにするためのスタイル。 */
.wpcf7 form .wpcf7-response-output { margin: 24px 0 0; padding: 14px 18px; border: 1px solid #DDE4E8; border-radius: 5px; font-size: 14px; line-height: 1.8; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #46836A; color: #2F6A52; background: #F1F8F5; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: #C9776B; color: #B5483B; background: #FCF4F2; }
.wpcf7-not-valid-tip { display: block; margin-top: 8px; font-size: 13px; color: #B5483B; }
.wpcf7-spinner { margin: 0 0 0 12px; vertical-align: middle; }

/* 入力欄 */
.cf-input, .cf-input-wide, .cf-textarea {
  border: 1px solid #DDE4E8; border-radius: 5px; background: #fff; box-sizing: border-box;
  font-family: inherit; font-size: 15px; color: #252A2D; -webkit-appearance: none;
}
.cf-input, .cf-input-wide { width: 420px; max-width: 100%; height: 52px; padding: 0 18px; }
.cf-input-wide { width: 560px; }
.cf-textarea { width: 100%; height: 180px; padding: 16px 18px; line-height: 1.8; resize: vertical; }
.cf-input::placeholder, .cf-input-wide::placeholder, .cf-textarea::placeholder { color: #B4BCC1; }
.cf-input:focus, .cf-input-wide:focus, .cf-textarea:focus { outline: 0; border-color: #365F7D; box-shadow: 0 0 0 3px rgba(54,95,125,.12); }
.contact-sec-1-row .wpcf7-form-control-wrap { display: block; }

/* お問い合わせ種別（ラジオ）：カード状に並べる */
.cf-radio { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cf-radio .wpcf7-list-item { margin: 0; }
.cf-radio label { display: flex; align-items: center; gap: 10px; border: 1px solid #DDE4E8; border-radius: 5px; padding: 15px 18px; background: #fff; cursor: pointer; }
.cf-radio label:hover { border-color: #B9C4CB; }
.cf-radio input[type="radio"] { width: 16px; height: 16px; margin: 0; flex-shrink: 0; accent-color: #365F7D; }
.cf-radio .wpcf7-list-item-label { font-size: 15px; color: #3A4145; }

/* プライバシーポリシーへの同意 */
.contact-sec-1-row-2 .wpcf7-form-control-wrap { display: block; }
.cf-accept .wpcf7-list-item { margin: 0; }
.cf-accept label { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.cf-accept input[type="checkbox"] { width: 18px; height: 18px; margin: 2px 0 0; flex-shrink: 0; accent-color: #365F7D; }

/* 送信ボタン */
.cf-submit { display: inline-block; background: #365F7D; color: #fff; font-family: inherit; font-size: 17px; font-weight: 500; padding: 22px 88px; border: 0; border-radius: 5px; box-shadow: 0 10px 24px rgba(54,95,125,.20); cursor: pointer; }
.cf-submit:hover { opacity: .9; }
.cf-submit:disabled { opacity: .55; cursor: default; }

@media (max-width: 767px) {
  .cf-radio { grid-template-columns: 1fr; }
  .cf-input, .cf-input-wide { width: 100%; }
  .cf-submit { width: 100%; padding: 22px 0; }
}

/* メールマガジン登録モーダル（CF7） */
.nl-modal-body .wpcf7 { display: block; }
.nl-field .wpcf7-form-control-wrap { display: block; }
.nl-agree-box .wpcf7-list-item { margin: 0; }
.nl-agree-box label { display: flex; align-items: flex-start; gap: 10px; margin-top: 22px; font-size: 13px; line-height: 1.8; color: #3A4145; cursor: pointer; }
.nl-agree-box input[type="checkbox"] { width: 16px; height: 16px; margin: 3px 0 0; accent-color: #365F7D; flex-shrink: 0; }
.nl-agree-box a { color: #365F7D; }
.nl-modal-body .wpcf7-response-output { margin-top: 18px; }

/* 肩書き（名前の下の3行）：TOP・ABOUT 共通 */
.wgt-titles { font-size: 14px; line-height: 2; color: #56636B; margin-top: 12px; }
.wgt-titles p, .wgt-titles .wgt-title { font-size: 14px; line-height: 2; color: #56636B; margin: 0; font-weight: 400; }

/* プロフィール本文（ABOUT） */
.wgt-profile { max-width: 640px; margin-top: 32px; }
.wgt-profile p { font-size: 16px; line-height: 2.05; color: #3A4145; margin: 0 0 24px; }
.wgt-profile .wgt:last-child p:last-child { margin-bottom: 0; }

/* 講座：受付終了のラベルと、申し込みボタンの無効状態 */
.seminar-tagline { display: flex; align-items: center; gap: 8px; }
.seminar-closed { font-size: 10px; letter-spacing: .1em; color: #96A2A9; border: 1px solid #DCE2E6; background: #F3F5F6; padding: 3px 10px; }
.seminar-past-count { margin-top: 20px; text-align: right; font-size: 12px; color: #96A2A9; }
.course-outline-link.is-disabled { background: #C9D2D8; box-shadow: none; cursor: default; pointer-events: none; }

/* TOP：NEWS & ACTIVITY のカード画像 */
.topnews-img { display: block; width: 100%; height: 200px; object-fit: cover; }
.noimg-top { height: 200px; border-radius: 0; }
@media (max-width: 767px) { .topnews-img, .noimg-top { height: 48vw; } }

/* STORIES：事例カードの写真 */
.story-img { display: block; width: 100%; height: 375px; object-fit: cover; }
.noimg-story { height: 375px; }
@media (max-width: 767px) { .story-img, .noimg-story { height: 56vw; } }

/* STORY詳細：ほかの事例 */
.story-other-thumb { overflow: hidden; }
.story-other-img { display: block; width: 100%; height: 170px; object-fit: cover; }
.noimg-other { height: 170px; }
@media (max-width: 767px) { .story-other-img, .noimg-other { height: 44vw; } }

/* NEWS一覧：カテゴリのラベルは、詳細ページと同じく文字幅に合わせる（固定幅をやめる） */
.news-newsletter-eyebrow { width: auto !important; padding: 4px 12px !important; }

/* NEWS詳細：本文と前後リンク */
.entry-main-img { display: block; width: 100%; height: auto; }
.pn-nav a { display: block; color: inherit; text-decoration: none; }
.pn-nav a:hover .news-detail-sec-1-text-2 { color: #365F7D; }
.pn-empty { color: #9AA1A5; }

/* NEWS一覧：カテゴリタブ（リンク化したぶんの調整） */
.news-newsletter-row a { text-decoration: none; }

/* NEWS一覧：ページャ */
.pager { display: flex; align-items: center; gap: 10px; justify-content: center; }
.pager a, .pager .current {
  font-family: Montserrat, "Helvetica Neue", Arial, sans-serif; font-size: 13px; letter-spacing: .08em;
  min-width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #DDE4E8; border-radius: 4px; color: #365F7D; text-decoration: none; background: #fff;
}
.pager .current { background: #365F7D; border-color: #365F7D; color: #fff; }
.pager a:hover { border-color: #365F7D; }

/* 本文（the_content）の基本 */
.entry-content p { margin: 0 0 28px; font-size: 16px; line-height: 2.1; color: #3A4145; }
.entry-content img { max-width: 100%; height: auto; }
