/* 説明会の申込ページ（page-seminar.php）専用。配色・寸法は参考ページ（e-ve.event-form.jp）の採寸値に合わせる */
.seminar {
  --accent: #528bb8;
  --must: #888;
  --note: #a5523a;
  --alert: #d0243f;
  --line: #ccc;
  font-size: 19px;
  font-weight: 400;
  line-height: 1.84;
  letter-spacing: 0.05em;
  color: #333;
  padding: 180px 20px 100px; /* 固定ヘッダーの高さ分あける */
}
.seminar strong, .seminar h1, .seminar h2, .seminar h3, .seminar h4, .seminar th, .seminar dt, .seminar .f-label { font-weight: 700; }
.seminar__h2 { font-weight: 400; }
.seminar__layout { display: flex; justify-content: center; align-items: flex-start; gap: 40px; max-width: 1120px; margin: 0 auto; }
.seminar__main { width: 750px; max-width: 100%; overflow-wrap: break-word; }
.seminar__side { width: 300px; position: sticky; top: 150px; }

.seminar__title { font-size: 34px; font-weight: 700; line-height: 1.38; margin: 0 0 30px; }
.seminar__subtitle { margin: 0 0 40px; padding-bottom: 40px; border-bottom: 1px solid #eee; }
.seminar__body { font-size: 16px; line-height: 2; }
.seminar__body p { margin: 0 0 1.2em; }
.seminar__body h3, .seminar__body h4 { font-size: 16px; font-weight: 700; margin: 2em 0 .6em; }
.seminar__body table { border-collapse: collapse; width: 100%; font-size: 14px; line-height: 1.7; }
.seminar__body td, .seminar__body th { border: 1px solid #333; padding: 4px 8px; vertical-align: top; }
.seminar__body .is-alert { color: var(--alert); font-weight: 700; }
.seminar__h2 { font-size: 30px; font-weight: 400; margin: 70px 0 30px; padding-bottom: 12px; border-bottom: 1px solid #eee; }

.seminar__table { width: 100%; border: 1px solid var(--line); border-radius: 5px; border-collapse: separate; border-spacing: 0; table-layout: fixed; margin: 50px 0 0; }
.seminar__table th { width: 150px; padding: 20px; background: #eee; text-align: left; font-weight: 400; vertical-align: top; white-space: nowrap; border-bottom: 1px solid var(--line); }
.seminar__table td { padding: 20px; border-bottom: 1px solid var(--line); }
.seminar__table tr:last-child th, .seminar__table tr:last-child td { border-bottom: 0; }
.seminar a { color: #1eb9ec; }
.seminar__remain { color: #aaa; font-size: .85em; }
.seminar__cal { font-size: 15px; }
.seminar__card .seminar__cal { font-size: 12px; }
.seminar__body h3.is-alert { padding-bottom: 8px; border-bottom: 1px solid var(--line); }

.seminar__card { border: 1px solid #eee; padding: 24px 20px; text-align: center; font-size: 15px; }
.seminar__card-title { font-size: 24px; margin: 0 0 20px; padding-bottom: 14px; border-bottom: 1px solid #eee; }
.seminar__status { color: var(--accent); margin: 0 0 20px; }
.seminar__status.is-closed { color: #888; }
.seminar__card dl { margin: 22px 0 0; }
.seminar__card dt { font-weight: 700; }
.seminar__card dd { margin: 0; }
.seminar__apply { display: block; padding: 14px; background: var(--accent); color: #fff !important; border: 1px solid var(--accent); text-decoration: none; transition: .2s; }
.seminar__apply:hover { background: #fff; color: var(--accent) !important; }
.seminar__apply.is-disabled { background: #eee; border-color: #eee; color: #aaa !important; cursor: not-allowed; }
.seminar__closed { color: var(--alert); font-size: 16px; }

/* 申込フォーム（Contact Form 7） */
.seminar-form { font-size: 16px; }
.seminar-form p > br { display: none; } /* Contact Form 7 が自動で入れる改行だけ消す */
.seminar-form p:empty { display: none; }
.seminar-form .wpcf7-form-control-wrap { display: block; }
.seminar-form .f-row { display: block; margin: 0 0 40px; }
.seminar-form .f-note { display: block; }
.seminar-form .f-label { display: block; font-weight: 700; font-size: 17px; margin: 0 0 6px; }
.seminar-form .f-must { display: inline-block; margin-left: 8px; padding: 0 6px; border: 1px solid var(--must); border-radius: 2px; color: var(--must); font-size: 11px; font-weight: 400; line-height: 1.6; vertical-align: middle; }
.seminar-form .f-note { color: var(--note); font-size: 13px; line-height: 1.7; margin: 0 0 8px; }
.seminar-form .f-text { display: block; color: #333; font-size: 14px; line-height: 1.7; margin: 0 0 8px; }
.seminar-form .f-lead { color: var(--alert); font-size: 14px; margin: 0 0 40px; }
.seminar-form .f-group-title { font-size: 17px; margin: 0 0 30px; }
.seminar-form .f-pair, .seminar-form .f-pair > p { display: flex; gap: 20px; margin: 0 0 10px; }
.seminar-form .f-pair > p, .seminar-form .f-pair label { flex: 1; } /* CF7 が中身を <p> で包むため、<p> も横並びにする */
.seminar-form input[type=text], .seminar-form input[type=email], .seminar-form input[type=tel], .seminar-form select, .seminar-form textarea {
  width: 100%; box-sizing: border-box; padding: 14px 16px; border: 1px solid #ccc; border-radius: 3px; background: #f7f7f7; font-size: 16px; font-family: inherit; transition: .15s;
}
.seminar-form textarea { height: 150px; }
.seminar-form input:focus, .seminar-form select:focus, .seminar-form textarea:focus { outline: 0; border: 2px solid var(--accent); background: #fff; padding: 13px 15px; }
.seminar-form .wpcf7-acceptance label { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.seminar-form .wpcf7-acceptance input { width: 22px; height: 22px; accent-color: var(--accent); }
.seminar-form .wpcf7-submit { display: block; width: 260px; margin: 50px auto 0; padding: 16px; background: var(--accent); color: #fff; border: 1px solid var(--accent); font-size: 18px; cursor: pointer; transition: .2s; }
.seminar-form .wpcf7-submit:hover { background: #fff; color: var(--accent); }
.seminar-form .wpcf7-not-valid-tip { color: var(--alert); font-size: 13px; }
.seminar-form .wpcf7-response-output { margin: 30px 0 0; padding: 14px 16px; font-size: 15px; }
.seminar-form .f-add { display: none; padding: 20px; margin: 0 0 20px; background: #f7f7f7; border-radius: 3px; }
.seminar-form .f-add.is-shown { display: block; }
.seminar-form .f-add-btn { display: block; margin: 0 auto 40px; background: none; border: 0; color: #888; font-size: 16px; cursor: pointer; }
.seminar-form .f-add-btn:hover { color: var(--accent); }
.seminar-form .f-add-btn[hidden] { display: none; }

@media (max-width: 992px) {
  .seminar { font-size: 18px; padding-top: 140px; }
  .seminar__layout { flex-direction: column-reverse; align-items: stretch; }
  .seminar__main { width: 100%; }
  .seminar__side { width: 100%; position: static; }
}
@media (max-width: 768px) {
  .seminar { font-size: 16px; padding: 110px 16px 60px; }
  .seminar__title { font-size: 24px; line-height: 1.5; }
  .seminar__h2 { font-size: 24px; margin-top: 50px; }
  .seminar__table th { width: 120px; padding: 10px; }
  .seminar__table td { padding: 10px; }
  .seminar-form .f-pair, .seminar-form .f-pair > p { flex-direction: column; gap: 10px; }
}

/* リンクが本文と見分けられるように下線を付ける（原稿どおり） */
.seminar__body a,
.seminar__table a,
.seminar__card a:not(.seminar__apply),
.seminar-form a { text-decoration: underline; color: #0b7bc4; }

/* 汎用固定ページ（page.php）の本文 */
.page-plain { line-height: 1.9; }
.page-plain h2 { font-size: 1.25em; margin: 2em 0 .6em; padding-left: .6em; border-left: 4px solid #1eb9ec; }
.page-plain ul, .page-plain ol { margin: .5em 0 1em 1.5em; list-style: revert; }
.page-plain p { margin: 0 0 1em; }
.page-fv { background: #1d3a5f; color: #fff; padding: 180px 0 56px; text-align: center; }
.page-fv h2 { color: #fff; font-size: 1.6em; font-weight: 700; }

/* チラシ：小さく表示し、クリックで拡大（モーダル） */
.seminar-flyer { margin: 24px 0; text-align: center; }
.seminar-flyer__btn { display: inline-block; padding: 0; border: 1px solid #ddd; background: #fff; cursor: zoom-in; max-width: 320px; width: 100%; }
.seminar-flyer__btn img { display: block; width: 100%; height: auto; }
.seminar-flyer figcaption { margin-top: 8px; font-size: 13px; color: #666; }
.flyer-modal { position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,.8); display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 16px; box-sizing: border-box; cursor: zoom-out; }
.flyer-modal img { display: block; width: auto; height: auto; max-width: 100%; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); object-fit: contain; background: #fff; }
.flyer-modal__close { position: fixed; top: 12px; right: 16px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; color: #333; font-size: 28px; line-height: 1; cursor: pointer; }

/* お知らせ（目立たせる囲み） */
.seminar-notice { margin: 24px 0; padding: 20px 22px; border: 2px solid var(--accent); border-radius: 6px; background: #f3f8fc; }
.seminar-notice p { margin: 0 0 .9em; line-height: 1.9; }
.seminar-notice p:last-child { margin-bottom: 0; }
.seminar-notice__title { font-size: 1.15em; font-weight: 700; color: var(--accent); }
