/* ============================================
   Sub Pages Common
   ============================================ */

/* Gnav tightening on mid-width to prevent wrap */
@media (min-width: 1024px) and (max-width: 1199px) {
  .gnav { gap: 20px !important; }
  .gnav a { font-size: 14px !important; }
  .header__inner { gap: 18px; }
}
@media (max-width: 1023px) {
  .gnav { gap: 16px; }
  .gnav a { font-size: 13.5px; white-space: nowrap; }
}

/* Header on sub pages — solid white with shadow so hero contrast is clear */
.header { background: rgba(255,255,255,0.98); box-shadow: 0 1px 0 rgba(11,37,69,.06); }

/* Page Head */
.page-head {
  position: relative;
  padding: calc(var(--header-h, 96px) + 60px) 0 60px;
  background: #1a4576;
  color: #fff;
  overflow: hidden;
}
.page-head::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 80% 20%, rgba(212,175,55,.18), transparent 40%),
    radial-gradient(circle at 10% 80%, rgba(255,255,255,.05), transparent 50%);
  pointer-events: none;
}
.page-head > .container { position: relative; z-index: 1; }
.page-head__eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  letter-spacing: .25em;
  font-size: 13px;
  color: #d4af37;
  margin-bottom: 14px;
}
.page-head__title {
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 20px;
  letter-spacing: .02em;
  color: #fff !important;
}
.page-head__lead {
  font-size: 15px;
  line-height: 1.9;
  color: rgba(255,255,255,.85) !important;
  max-width: 760px;
}

/* Breadcrumb */
.breadcrumb { margin-bottom: 28px; }
.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 6px;
  list-style: none;
  font-size: 13px;
  color: rgba(255,255,255,.75);
  padding: 0;
  margin: 0;
}
.breadcrumb li {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}
.breadcrumb li + li::before {
  content: "/";
  color: rgba(255,255,255,.4);
  margin: 0 8px 0 2px;
}
.breadcrumb li:last-child { white-space: normal; }
.breadcrumb a {
  color: rgba(255,255,255,.85);
  text-decoration: none;
  transition: color .2s;
}
.breadcrumb a:hover { color: #d4af37; }
.breadcrumb [aria-current="page"] { color: #fff; font-weight: 600; }

/* ============================================
   Filter Bar
   ============================================ */
.filter-bar {
  background: #f5f7fa;
  padding: 36px 0 32px;
  border-bottom: 1px solid #e5e9f0;
}
.filter-bar__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  margin-bottom: 22px;
}
.filter-bar__search {
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #d6dde7;
  border-radius: 999px;
  padding: 0 22px;
  transition: border-color .2s, box-shadow .2s;
}
.filter-bar__search:focus-within {
  border-color: #0b2545;
  box-shadow: 0 0 0 4px rgba(11,37,69,.08);
}
.filter-bar__search i { color: #6b7a8d; margin-right: 12px; }
.filter-bar__search input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 15px;
  padding: 14px 0;
  font-family: inherit;
  color: #0b2545;
}
.filter-bar__sort label {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid #d6dde7;
  border-radius: 999px;
  padding: 0 22px;
  height: 100%;
  font-size: 13px;
  font-weight: 600;
  color: #4a5a72;
}
.filter-bar__sort select {
  border: none;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  color: #0b2545;
  padding: 14px 0 14px 8px;
  cursor: pointer;
  outline: none;
}

.filter-bar__chips {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.filter-bar__chip-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.filter-bar__chip-label {
  font-size: 12px;
  font-weight: 700;
  color: #4a5a72;
  letter-spacing: .08em;
  min-width: 78px;
  padding-right: 8px;
  border-right: 2px solid #d4af37;
  margin-right: 8px;
}
.chip {
  border: 1px solid #d6dde7;
  background: #fff;
  color: #4a5a72;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 18px;
  border-radius: 999px;
  cursor: pointer;
  font-family: inherit;
  transition: all .2s;
  white-space: nowrap;
  line-height: 1;
}
.chip:hover { border-color: #0b2545; color: #0b2545; }
.chip.is-active {
  background: #0b2545;
  border-color: #0b2545;
  color: #fff;
}
.filter-bar__count {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 22px;
  font-size: 14px;
  color: #4a5a72;
}
.filter-bar__count-text { display: inline-flex; align-items: baseline; gap: 4px; }
.filter-bar__count [data-result-count] {
  font-family: 'Montserrat', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: #0b2545;
}
.filter-bar__reset {
  background: none;
  border: none;
  color: #4a5a72;
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  transition: color .2s;
}
.filter-bar__reset:hover { color: #0b2545; }

@media (max-width: 768px) {
  .filter-bar__row { grid-template-columns: 1fr; }
  .filter-bar__chip-group { gap: 6px; }
  .filter-bar__chip-label {
    min-width: 100%;
    border-right: none;
    border-bottom: 2px solid #d4af37;
    padding: 0 0 6px;
    margin: 0 0 4px;
  }
  .chip { padding: 7px 14px; font-size: 12px; }
}

/* ============================================
   Seminar List Grid (3 cols)
   ============================================ */
.seminar-list { padding: 70px 0 100px; }
.seminar-list__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 28px;
}
@media (max-width: 1024px) {
  .seminar-list__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .seminar-list__grid { grid-template-columns: 1fr; gap: 24px; }
}
.seminar-list__empty {
  text-align: center;
  padding: 80px 20px;
  font-size: 15px;
  color: #6b7a8d;
}
.seminar-list__empty i {
  display: block;
  font-size: 48px;
  margin-bottom: 16px;
  color: #c5cdd9;
}

/* Card style consistent with index */
.seminar-list .seminar-card {
  background: #fff;
  border: 1px solid #e5e9f0;
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color .25s, box-shadow .25s;
}
.seminar-list .seminar-card:hover {
  border-color: #d4af37;
  box-shadow: 0 14px 40px -22px rgba(11,37,69,.35);
}
.seminar-list .seminar-card__thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  display: block;
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}
.seminar-list .seminar-card__thumb::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11,37,69,.10) 0%, rgba(11,37,69,.55) 100%);
  z-index: 1;
}
.seminar-list .seminar-card__thumb--ended::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(20,30,46,.55);
  z-index: 1;
}
/* Hide icon since real photos are now used */
.seminar-list .seminar-card__thumb-icon { display: none; }
.seminar-list .seminar-card__thumb-num {
  position: absolute;
  bottom: 10px;
  right: 16px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 36px;
  color: rgba(255,255,255,.55);
  letter-spacing: .04em;
  z-index: 2;
  text-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.seminar-list .seminar-card__thumb-tag {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #d4af37;
  color: #0b2545;
  font-size: 11px;
  font-weight: 800;
  padding: 5px 12px;
  border-radius: 4px;
  letter-spacing: .06em;
  z-index: 2;
}
.seminar-list .seminar-card__thumb-tag--closed { background: #6b7a8d; color: #fff; }

.seminar-card__body {
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.seminar-card__title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.55;
  color: #0b2545;
  margin-bottom: 14px;
  min-height: 53px;
}
.seminar-card__dates {
  list-style: none;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px dashed #e5e9f0;
}
.seminar-card__date-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.seminar-card__date-when { display: flex; flex-direction: column; gap: 2px; }
.seminar-list .seminar-card__date {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #0b2545;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  line-height: 1.3;
}
.seminar-list .seminar-card__date .day {
  font-size: 11px;
  color: #6b7a8d;
  margin-left: 0;
  letter-spacing: .08em;
}
.seminar-list .seminar-card__time {
  display: block;
  font-size: 12px;
  color: #4a5a72;
  margin-top: 2px;
}
.seminar-card__type {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 4px;
}
.seminar-card__type--online { background: rgba(212,175,55,.15); color: #8a6e1f; }
.seminar-card__type--venue { background: rgba(11,37,69,.08); color: #0b2545; }
.seminar-card__desc {
  font-size: 13px;
  line-height: 1.75;
  color: #4a5a72;
  margin-bottom: 18px;
  flex: 1;
}

/* Buttons (block / ghost) */
.btn--block {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
.btn--ghost {
  background: #fff;
  color: #6b7a8d;
  border: 1px solid #d6dde7;
}
.btn--ghost:hover { background: #f5f7fa; color: #0b2545; }

/* ============================================
   Pagination
   ============================================ */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin-top: 60px;
}
.pagination__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border: 1px solid #d6dde7;
  border-radius: 8px;
  color: #0b2545;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  background: #fff;
  transition: all .2s;
}
.pagination__btn:hover { border-color: #0b2545; background: #0b2545; color: #fff; }
.pagination__btn.is-disabled {
  opacity: .4;
  pointer-events: none;
}
.pagination__pages {
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
}
.pagination__pages a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  border: 1px solid #d6dde7;
  color: #4a5a72;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  text-decoration: none;
  font-size: 14px;
  transition: all .2s;
  background: #fff;
}
.pagination__pages a:hover { border-color: #0b2545; color: #0b2545; }
.pagination__pages a.is-current {
  background: #0b2545;
  border-color: #0b2545;
  color: #fff;
}
.pagination__ellipsis { color: #6b7a8d; padding: 0 4px; }
@media (max-width: 600px) {
  .pagination__btn span { display: none; }
  .pagination__btn { padding: 10px 12px; }
  .pagination__pages a { width: 36px; height: 36px; font-size: 13px; }
}

/* solo CTA tweak */
.achievement__cta--solo { max-width: 720px; margin: 0 auto; }

/* ============================================
   Seminar Detail Page
   ============================================ */
.detail-hero {
  position: relative;
  /* 見た目上の上下マージンを揃える: ヘッダー高分 + 40px ↔ 40px */
  padding: calc(var(--header-h, 104px) + 40px) 0 40px;
  background: var(--c-navy, #0f2a47);
  color: #fff;
  overflow: hidden;
  min-height: 360px;
  display: flex;
  flex-direction: column;
}
/* width / max-width / padding はサイト共通 .container を継承し、
   左端を本文セクションと完全一致させる。 */
.detail-hero > .container {
  position: relative;
  z-index: 3;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.detail-hero__inner {
  max-width: 900px;
  margin-block: auto;
}
.detail-hero__visual {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 42%;
  z-index: 1;
  overflow: hidden;
}
.detail-hero__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.detail-hero__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    var(--c-navy, #0f2a47) 0%,
    rgba(15,42,71,.96) 14%,
    rgba(15,42,71,.55) 50%,
    rgba(15,42,71,.12) 88%,
    rgba(15,42,71,0)   100%);
}
@media (max-width: 900px) {
  .detail-hero {
    min-height: 0;
    padding-top: calc(var(--header-h-sp, 76px) + 32px);
    padding-bottom: 32px;
  }
  .detail-hero__visual { display: none; }
  .detail-hero__inner { max-width: 100%; }
}
.detail-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 85% 15%, rgba(200,146,61,.16), transparent 38%);
  pointer-events: none;
  z-index: 2;
}
.detail-hero .breadcrumb { margin: 0 0 28px; flex: 0 0 auto; }
.detail-hero .breadcrumb a { color: rgba(255,255,255,.78); }
.detail-hero .breadcrumb a:hover { color: var(--c-gold, #c8923d); }
.detail-hero .breadcrumb [aria-current="page"] { color: #fff; }

.detail-hero__eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  letter-spacing: .22em;
  font-size: 12px;
  color: var(--c-gold-light, #e2b876);
  margin: 0 0 10px;
  text-transform: uppercase;
}
.detail-hero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
.detail-hero__tag {
  font-size: 11px;
  font-weight: 800;
  padding: 5px 12px;
  border-radius: 4px;
  letter-spacing: .06em;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.detail-hero__tag--status { background: #d4af37; color: #0b2545; }
.detail-hero__tag--cat { background: rgba(255,255,255,.15); color: #fff; border: 1px solid rgba(255,255,255,.25); }
.detail-hero__tag--format { background: rgba(255,255,255,.95); color: #0b2545; }

.detail-hero__title {
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 800;
  line-height: 1.5;
  margin: 0 0 18px;
  letter-spacing: .02em;
  white-space: nowrap;
  text-wrap: balance;
}
@media (max-width: 900px) {
  .detail-hero__title { white-space: normal; }
}
.detail-hero__lead {
  font-size: 14px;
  line-height: 1.85;
  color: rgba(255,255,255,.85);
  max-width: 700px;
  margin: 0 0 22px;
}

.detail-hero__quickmeta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.18);
  max-width: 620px;
}
.detail-hero__quickmeta-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: rgba(255,255,255,.92);
  font-weight: 500;
}
.detail-hero__quickmeta-item i { color: #d4af37; font-size: 13px; }

.detail-hero__meta-OLD {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  overflow: hidden;
  max-width: 880px;
}
.detail-hero__meta-item {
  background: rgba(11,37,69,.55);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.detail-hero__meta-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  color: #d4af37;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.detail-hero__meta-value {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #fff !important;
}
.detail-hero__title { color: #fff !important; }
.detail-hero__lead { color: rgba(255,255,255,.88) !important; }
.detail-hero__meta-value small {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 11px;
  color: rgba(255,255,255,.7);
  margin-top: 2px;
}
@media (max-width: 768px) {
  .detail-hero__meta { grid-template-columns: repeat(2, 1fr); }
}

.detail-hero__cta-spacer { flex-basis: 100%; height: 0; }
.detail-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 32px;
}
.detail-hero__cta .btn {
  padding: 18px 32px;
  font-size: 15px;
  border-radius: 8px;
}
.detail-hero__cta .btn--primary {
  background: #d4af37 !important;
  color: #0b2545 !important;
  border: none;
  font-weight: 800;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.detail-hero__cta .btn--primary:hover { background: #e4c14a !important; }
.detail-hero__cta .btn--outline-light {
  background: transparent !important;
  color: #fff !important;
  border: 1.5px solid rgba(255,255,255,.6);
}
.detail-hero__cta .btn--outline-light:hover { background: rgba(255,255,255,.14) !important; }
.detail-hero__cta .btn--gold-outline {
  background: #fff !important;
  color: #8a6e1f !important;
  border: 1.5px solid #d4af37;
  font-weight: 700;
}
.detail-hero__cta .btn--gold-outline:hover { background: #fff8e5 !important; }
.detail-hero__cta .btn--gold-outline i { color: #d4af37; }

/* Schedule table in hero */
.detail-hero__schedule {
  margin-top: 22px;
  background: rgba(11,37,69,.45);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  padding: 22px 26px;
  max-width: 880px;
}
.detail-hero__schedule-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #d4af37;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.detail-hero__schedule-list { list-style: none; padding: 0; margin: 0; }
.detail-hero__schedule-item {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(120px, 0.9fr) minmax(140px, 1fr);
  gap: 14px 18px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(255,255,255,.18);
}
.detail-hero__schedule-item:last-child { border-bottom: none; padding-bottom: 0; }
.detail-hero__schedule-item:first-child { padding-top: 0; }
.detail-hero__schedule-date {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 17px;
  color: #fff;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}
.detail-hero__schedule-date small {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,.65);
  letter-spacing: .1em;
}
.detail-hero__schedule-time {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: rgba(255,255,255,.92);
}
.detail-hero__schedule-format {
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: rgba(255,255,255,.12);
  padding: 5px 12px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  width: fit-content;
}
.detail-hero__schedule-status {
  font-size: 11px;
  font-weight: 800;
  padding: 6px 12px;
  border-radius: 4px;
  letter-spacing: .04em;
  white-space: nowrap;
  text-align: center;
}
.detail-hero__schedule-status--open { background: #d4af37; color: #0b2545; }
.detail-hero__schedule-status--few { background: #c0392b; color: #fff; }
@media (max-width: 768px) {
  .detail-hero__schedule { padding: 18px 16px; }
  .detail-hero__schedule-item {
    grid-template-columns: 1fr auto;
    gap: 6px 12px;
    padding: 14px 0;
  }
  .detail-hero__schedule-date { grid-column: 1; }
  .detail-hero__schedule-status { grid-column: 2; grid-row: 1; }
  .detail-hero__schedule-time { grid-column: 1 / -1; font-size: 13px; }
  .detail-hero__schedule-format { grid-column: 1 / -1; }
}

/* ====== Detail Body Layout ====== */
.detail-body { padding: 80px 0 100px; background: #f8f9fb; }
.detail-body__inner {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 50px;
  align-items: start;
}
@media (max-width: 960px) {
  .detail-body__inner { grid-template-columns: 1fr; }
}

.detail-section { margin-bottom: 60px; }
.detail-section:last-child { margin-bottom: 0; }
.detail-section__head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 24px;
  padding-bottom: 14px;
  border-bottom: 2px solid #0b2545;
}
.detail-section__num {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 22px;
  color: #d4af37;
  letter-spacing: .08em;
}
.detail-section__title {
  font-size: 28px;
  font-weight: 800;
  color: #0b2545;
  letter-spacing: .02em;
}

.detail-overview {
  background: #fff;
  border: 1px solid #e5e9f0;
  border-radius: 12px;
  padding: 36px 40px;
}
.detail-overview p { line-height: 2; color: #2a3b54; font-size: 17px; }
.detail-overview p + p { margin-top: 18px; }

.detail-target {
  background: #fff;
  border: 1px solid #e5e9f0;
  border-radius: 12px;
  padding: 30px 38px;
  margin-top: 22px;
}
.detail-target__title {
  font-size: 18px;
  font-weight: 800;
  color: #0b2545;
  margin-bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.detail-target__title i { color: #d4af37; }
.detail-target__list { list-style: none; display: grid; gap: 14px; }
.detail-target__list li {
  position: relative;
  padding-left: 32px;
  font-size: 16px;
  line-height: 1.85;
  color: #2a3b54;
}
.detail-target__list li::before {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 4px;
  color: #d4af37;
  font-size: 12px;
  width: 20px;
  height: 20px;
  background: rgba(212,175,55,.15);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ====== Program / Timetable ====== */
.detail-program {
  background: #fff;
  border: 1px solid #e5e9f0;
  border-radius: 12px;
  padding: 30px 32px;
}
.timetable { list-style: none; }
.timetable__item {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px dashed #e5e9f0;
  position: relative;
}
.timetable__item:last-child { border-bottom: none; padding-bottom: 0; }
.timetable__item:first-child { padding-top: 0; }
.timetable__time {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 19px;
  color: #d4af37;
  letter-spacing: .04em;
  position: relative;
}
.timetable__time::after {
  content: "";
  position: absolute;
  right: -12px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: #e5e9f0;
}
.timetable__body h4 {
  font-size: 20px;
  font-weight: 700;
  color: #0b2545;
  margin-bottom: 10px;
}
.timetable__body p {
  font-size: 16px;
  line-height: 1.95;
  color: #4a5a72;
}
@media (max-width: 600px) {
  .timetable__item { grid-template-columns: 1fr; gap: 8px; }
  .timetable__time::after { display: none; }
}

/* ====== Lecturer ====== */
.detail-lecturer {
  background: #fff;
  border: 1px solid #e5e9f0;
  border-radius: 12px;
  padding: 30px 32px;
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 28px;
  align-items: start;
}
@media (max-width: 600px) {
  .detail-lecturer { grid-template-columns: 1fr; text-align: center; }
}
.detail-lecturer__photo {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: linear-gradient(135deg, #14365e, #0b2545);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.85);
  font-size: 56px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}
.detail-lecturer__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 70% 30%, rgba(212,175,55,.25), transparent 55%);
}
.detail-lecturer__role {
  font-size: 12px;
  font-weight: 700;
  color: #d4af37;
  letter-spacing: .08em;
  margin-bottom: 6px;
}
.detail-lecturer__name {
  font-size: 28px;
  font-weight: 800;
  color: #0b2545;
  margin-bottom: 6px;
}
.detail-lecturer__name-en {
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: #6b7a8d;
  letter-spacing: .12em;
  margin-bottom: 18px;
}
.detail-lecturer__bio {
  font-size: 16px;
  line-height: 2;
  color: #2a3b54;
}

/* ====== Pricing ====== */
.detail-pricing {
  background: #fff;
  border: 1px solid #e5e9f0;
  border-radius: 12px;
  padding: 30px 32px;
}
.pricing-table {
  width: 100%;
  border-collapse: collapse;
}
.pricing-table th,
.pricing-table td {
  padding: 22px 24px;
  text-align: left;
  border-bottom: 1px solid #e5e9f0;
}
.pricing-table th {
  font-size: 16px;
  font-weight: 700;
  color: #0b2545;
  background: #f5f7fa;
  width: 40%;
}
.pricing-table td {
  font-size: 17px;
  color: #2a3b54;
}
.pricing-table .price {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  color: #0b2545;
  font-size: 24px;
}
.pricing-table .price small {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #6b7a8d;
  margin-left: 8px;
}
.pricing-note {
  margin-top: 20px;
  font-size: 14px;
  color: #6b7a8d;
  line-height: 1.95;
}

/* ====== Venue ====== */
.detail-venue {
  background: #fff;
  border: 1px solid #e5e9f0;
  border-radius: 12px;
  padding: 30px 32px;
}
.venue-info {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 18px 28px;
  font-size: 16px;
}
.venue-info dt {
  font-weight: 700;
  color: #0b2545;
  display: flex;
  align-items: center;
  gap: 8px;
}
.venue-info dt i { color: #d4af37; }
.venue-info dd { color: #2a3b54; line-height: 1.85; }
.venue-map {
  margin-top: 22px;
  aspect-ratio: 16 / 7;
  background: linear-gradient(135deg, #e5e9f0 0%, #d6dde7 100%);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6b7a8d;
  font-size: 13px;
  position: relative;
  overflow: hidden;
}
.venue-map::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(0deg, rgba(11,37,69,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,37,69,.06) 1px, transparent 1px);
  background-size: 32px 32px;
}
.venue-map i { font-size: 32px; color: #0b2545; margin-right: 10px; }
.venue-map span { position: relative; z-index: 1; }

/* Google マップ埋め込み（住所入力時に自動表示） */
.venue-map-embed { margin-top: 22px; }
.venue-map-embed iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 8;
  border: 1px solid var(--c-line, #e6e8ee);
  border-radius: 8px;
}
.venue-map-embed__address {
  margin: 10px 0 0;
  font-size: 13px;
  color: #4d5468;
}
.venue-map-embed__address i {
  color: var(--c-gold, #c8923d);
  margin-right: 6px;
}
.venue-map-embed__note {
  margin: 4px 0 0;
  font-size: 13px;
  color: #6b7a8d;
}
.venue-map-embed__note i {
  color: #6b7a8d;
  margin-right: 6px;
}
@media (max-width: 600px) {
  .venue-info { grid-template-columns: 1fr; gap: 4px 0; }
  .venue-info dd { margin-bottom: 12px; }
}

/* ====== Sidebar ====== */
.detail-sidebar { position: sticky; top: 100px; }
.detail-sidebar__card {
  background: #fff;
  border: 1px solid #e5e9f0;
  border-radius: 12px;
  padding: 26px 24px;
  box-shadow: 0 14px 40px -22px rgba(11,37,69,.25);
}
.detail-sidebar__title {
  font-size: 14px;
  font-weight: 800;
  color: #0b2545;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.detail-sidebar__title i { color: #d4af37; }
.detail-sidebar__schedule { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 8px; }
.detail-sidebar__schedule-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 12px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #e5e9f0;
  border-radius: 8px;
  background: #fcfcfd;
}
.detail-sidebar__schedule-body { display: flex; flex-direction: column; gap: 4px; }
.detail-sidebar__schedule-date {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #0b2545;
}
.detail-sidebar__schedule-date small {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  color: #6b7a8d;
  letter-spacing: .08em;
  margin-left: 4px;
}
.detail-sidebar__schedule-meta { font-size: 12.5px; color: #4a5a72; }
.detail-sidebar__schedule-tag {
  font-size: 11px;
  font-weight: 800;
  padding: 5px 10px;
  border-radius: 4px;
  white-space: nowrap;
}
.detail-sidebar__schedule-tag--open { background: rgba(212,175,55,.18); color: #8a6e1f; }
.detail-sidebar__schedule-tag--few { background: rgba(192,57,43,.12); color: #c0392b; }

.detail-sidebar__list { list-style: none; margin-bottom: 22px; padding: 16px 14px; background: #f5f7fa; border-radius: 8px; }
.detail-sidebar__list-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  font-size: 14px;
}
.detail-sidebar__list-row dt { color: #6b7a8d; }
.detail-sidebar__list-row dd { color: #0b2545; font-weight: 700; }

.detail-sidebar__btn {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 18px;
  background: #d4af37;
  color: #0b2545;
  font-weight: 800;
  border-radius: 8px;
  text-decoration: none;
  font-size: 15px;
  transition: background .2s;
}
.detail-sidebar__btn:hover { background: #e4c14a; }

/* 受付終了時のボタン（クリック不可・グレー） */
.detail-sidebar__btn--ended {
  background: #c5cdd9 !important;
  color: #6b7a8d !important;
  cursor: not-allowed;
  pointer-events: none;
}
.detail-sidebar__btn--ended:hover { background: #c5cdd9 !important; }
.detail-sidebar__btn--ended i { margin-right: 4px; }

.detail-sticky-cta__main--ended {
  background: #c5cdd9 !important;
  color: #6b7a8d !important;
  cursor: not-allowed;
  pointer-events: none;
}
.detail-sticky-cta__main--ended i { margin-right: 4px; }

.detail-sidebar__divider {
  text-align: center;
  font-size: 12px;
  color: #6b7a8d;
  margin: 22px 0 14px;
  letter-spacing: .08em;
  position: relative;
}
.detail-sidebar__divider::before,
.detail-sidebar__divider::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 25%;
  height: 1px;
  background: #e5e9f0;
}
.detail-sidebar__divider::before { left: 0; }
.detail-sidebar__divider::after { right: 0; }

.detail-sidebar__sub-btn {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 14px;
  border: 1px solid #d6dde7;
  background: #fff;
  color: #0b2545;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  font-size: 14px;
  transition: all .2s;
  margin-bottom: 8px;
}
.detail-sidebar__sub-btn:hover { border-color: #0b2545; background: #f5f7fa; }
.detail-sidebar__sub-btn--gold { border-color: rgba(212,175,55,.5); color: #8a6e1f; background: rgba(212,175,55,.06); }
.detail-sidebar__sub-btn--gold:hover { border-color: #d4af37; background: rgba(212,175,55,.14); }
.detail-sidebar__sub-btn--gold i { color: #d4af37; }
.detail-sidebar__note {
  margin-top: 16px;
  font-size: 11px;
  line-height: 1.7;
  color: #6b7a8d;
  text-align: center;
}
@media (max-width: 960px) {
  .detail-sidebar { position: static; margin-bottom: 40px; }
}

/* ====== Sticky bottom CTA on mobile ====== */
.detail-sticky-cta {
  display: none;
}
@media (max-width: 768px) {
  .detail-sticky-cta {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 50;
    padding: 10px 12px;
    gap: 8px;
    background: #fff;
    border-top: 1px solid #e5e9f0;
    box-shadow: 0 -8px 24px -10px rgba(11,37,69,.15);
  }
  .detail-sticky-cta__main {
    flex: 1;
    text-align: center;
    padding: 14px;
    border-radius: 8px;
    background: #d4af37;
    color: #0b2545;
    text-decoration: none;
    font-weight: 800;
    font-size: 14px;
  }
  .detail-sticky-cta__sub {
    width: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #fff;
    color: #8a6e1f;
    border: 1px solid rgba(212,175,55,.5);
    font-size: 16px;
    text-decoration: none;
  }
}

/* =====================================================
   旧サイトから移植: 記事本文 .seminar-article の装飾
   ===================================================== */
/* ==========================================================================
   セミナー記事スタイル  news20260612
   ========================================================================== */

.seminar-article {
    font-family: 'Helvetica Neue', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Arial, sans-serif;
    line-height: 1.85;
    color: #222;
    max-width: 98%;
    margin: 0 auto;
    padding: 24px 22px;
    background: #fff;
}

.seminar-article p { margin-bottom: 14px; }

.seminar-article p:last-child { margin-bottom: 0; }

/* ---------- 強調インライン ---------- */

.seminar-article strong {
    color: #14304f;
    font-weight: 700;
}

.seminar-article .highlight {
    color: #b8362b;
    font-weight: 700;
}

.seminar-article .emphasis {
    background: linear-gradient(transparent 60%, #ffe49b 60%);
    color: #14304f;
    font-weight: 700;
    padding: 0 2px;
}

/* ==========================================================================
   HERO
   ========================================================================== */

.seminar-article .hero-block {
    background: #14304f;
    color: #fff;
    padding: 36px 28px 30px;
    margin-bottom: 32px;
    text-align: center;
    border-top: 4px solid #d29028;
}

.seminar-article .hero-badge {
    display: inline-block;
    background: #d29028;
    color: #14304f;
    padding: 5px 16px;
    font-size: 0.85em;
    font-weight: 700;
    letter-spacing: 0.06em;
    margin-bottom: 18px;
}

.seminar-article .hero-title {
    font-size: 1.95em;
    line-height: 1.45;
    margin: 0 0 14px 0;
    color: #fff;
    background: none;
    border: none;
    padding: 0;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-align: center;
}

.seminar-article .hero-emphasis {
    color: #f5c668;
    font-size: 1.12em;
    border-bottom: 3px solid #d29028;
    padding-bottom: 2px;
}

.seminar-article .hero-subtitle {
    font-size: 0.96em;
    opacity: 0.92;
    margin-bottom: 26px;
}

.seminar-article .hero-dates {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: 1px solid rgba(255, 255, 255, 0.25);
}

.seminar-article .date-card {
    padding: 16px 6px 14px;
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.seminar-article .date-card:last-child { border-right: none; }

.seminar-article .date-type {
    display: inline-block;
    padding: 2px 10px;
    font-size: 0.7em;
    font-weight: 700;
    margin-bottom: 8px;
    letter-spacing: 0.06em;
    border: 1px solid currentColor;
}

.seminar-article .type-real {
    background: #d29028;
    color: #14304f;
    border-color: #d29028;
}

.seminar-article .type-online {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.7);
}

.seminar-article .date-main {
    font-size: 1.55em;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: 0.02em;
}

.seminar-article .date-day {
    font-size: 0.55em;
    margin-left: 3px;
    opacity: 0.88;
    font-weight: 600;
}

.seminar-article .date-time {
    font-size: 0.82em;
    opacity: 0.9;
    margin-top: 6px;
    letter-spacing: 0.02em;
    font-feature-settings: "tnum";
}

/* ==========================================================================
   見出し
   ========================================================================== */

.seminar-article h2,
.seminar-article .section-header {
    font-size: 1.4em;
    color: #0a1f33;
    background: none;
    padding: 10px 0 10px 16px;
    border: none;
    border-bottom: 3px solid #0a1f33;
    border-top: none;
    margin-top: 40px;
    margin-bottom: 20px;
    letter-spacing: 0.02em;
    text-align: left;
    line-height: 1.5;
    font-weight: 800;
    position: relative;
}

.seminar-article h2::before,
.seminar-article .section-header::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    bottom: 10px;
    width: 6px;
    background: #b67a1c;
}

.seminar-article h3,
.seminar-article .day-header {
    font-size: 1.15em;
    color: #14304f;
    background: none;
    padding: 0;
    margin: 0 0 12px 0;
    border: none;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 0.01em;
}

/* ---------- 共通ブロック ---------- */

.seminar-article .content-block {
    margin-bottom: 18px;
    padding: 18px 20px;
    background: #f6f7f9;
    border: 1px solid #d8dde3;
}

.seminar-article .special-feature {
    background: transparent;
    padding: 0;
    margin-bottom: 32px;
}

.seminar-article .feature-item {
    background: #fff;
    padding: 20px 22px;
    margin-bottom: 14px;
    border: 1px solid #d8dde3;
}

/* ==========================================================================
   経営課題チェックグリッド
   ========================================================================== */

.seminar-article .check-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.seminar-article .check-card {
    background: #fff;
    padding: 14px 16px 14px 44px;
    border: 1px solid #d8dde3;
    position: relative;
    font-size: 0.98em;
    line-height: 1.55;
}

.seminar-article .check-card::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 50%;
    width: 14px;
    height: 8px;
    border-left: 3px solid #14304f;
    border-bottom: 3px solid #14304f;
    transform: translateY(-75%) rotate(-45deg);
}

/* ==========================================================================
   プログラム
   ========================================================================== */

.seminar-article .program-card {
    background: #fff;
    padding: 24px 26px;
    margin-bottom: 14px;
    border: 1px solid #d8dde3;
    border-top: 3px solid #14304f;
    display: flex;
    align-items: flex-start;
    gap: 22px;
}

.seminar-article .program-body {
    flex: 1 1 auto;
    min-width: 0;
}

.seminar-article .program-body > p:last-child {
    margin-bottom: 0;
}

.seminar-article .program-thumb {
    flex: 0 0 180px;
    width: 180px;
    min-width: 180px;
    display: block;
    line-height: 0;
    margin: 0;
}

.seminar-article .program-thumb img {
    display: block;
    width: 180px;
    max-width: 100%;
    height: auto;
    border: 1px solid #d8dde3;
}

.seminar-article .program-num {
    display: inline-block;
    background: #14304f;
    color: #fff;
    padding: 4px 14px;
    font-size: 0.82em;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 12px;
}

.seminar-article .program-title {
    font-size: 1.2em;
    color: #14304f;
    margin: 0 0 12px 0;
    font-weight: 700;
    line-height: 1.5;
}

.seminar-article .program-lead {
    line-height: 1.85;
    margin-bottom: 14px;
    color: #333;
}

.seminar-article .program-speaker {
    margin: 0;
    padding-top: 12px;
    border-top: 1px dotted #c3cad2;
    color: #5a6470;
    font-size: 0.92em;
}

/* ==========================================================================
   学べる5つのこと
   ========================================================================== */

.seminar-article .summary-point {
    font-size: 1.02em;
    line-height: 1.7;
    margin: 0 0 8px 0;
    padding: 12px 16px;
    background: #f6f7f9;
    border: 1px solid #d8dde3;
    color: #222;
}

.seminar-article .numbered-point {
    background: #14304f;
    color: #fff;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    font-weight: 700;
    font-size: 0.92em;
    vertical-align: middle;
}

/* ==========================================================================
   特別ゲスト
   ========================================================================== */

.seminar-article .speaker-card {
    background: #fff;
    padding: 24px 26px;
    border: 1px solid #d8dde3;
    border-top: 3px solid #d29028;
}

.seminar-article .speaker-name {
    font-size: 1.5em;
    font-weight: 700;
    color: #14304f;
    margin-bottom: 4px;
    line-height: 1.3;
}

.seminar-article .speaker-suffix {
    font-size: 0.7em;
    color: #5a6470;
    font-weight: 500;
    margin-left: 4px;
}

.seminar-article .speaker-company {
    color: #5a6470;
    margin-bottom: 14px;
    font-size: 0.95em;
}

.seminar-article .speaker-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
    margin-bottom: 16px;
    padding: 12px 0;
    border-top: 1px solid #d8dde3;
    border-bottom: 1px solid #d8dde3;
}

.seminar-article .meta-item {
    font-size: 0.92em;
    color: #333;
    display: inline-flex;
    align-items: center;
}

.seminar-article .meta-label {
    display: inline-block;
    background: #14304f;
    color: #fff;
    padding: 2px 9px;
    font-size: 0.8em;
    margin-right: 8px;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.seminar-article .speaker-card p {
    line-height: 1.85;
    margin: 0;
}

/* ==========================================================================
   ４コマ漫画ブロック（AI見積セクション）
   ========================================================================== */

.seminar-article .manga-block {
    background: #fff;
    border: 1px solid #d8dde3;
    padding: 24px 20px 18px;
    text-align: center;
}

.seminar-article .manga-thumb {
    display: inline-block;
    line-height: 0;
    max-width: 100%;
}

.seminar-article .manga-thumb img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 1px solid #d8dde3;
}

.seminar-article .image-caption {
    text-align: center;
    font-size: 0.86em;
    color: #5a6470;
    margin: 12px 0 0;
    line-height: 1.5;
}

/* ==========================================================================
   タググリッド（事業展開例）
   ========================================================================== */

.seminar-article .tag-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 4px 0;
}

.seminar-article .tag {
    display: inline-block;
    background: #f6f7f9;
    color: #14304f;
    padding: 6px 12px;
    font-size: 0.92em;
    border: 1px solid #c3cad2;
    line-height: 1.4;
    white-space: nowrap;
}

/* ==========================================================================
   開催概要テーブル
   ========================================================================== */

.seminar-article .info-table,
.seminar-article table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0 8px;
    background: #fff;
    border: 1px solid #c3cad2;
    table-layout: fixed;
}

.seminar-article .info-table th,
.seminar-article table th {
    background: #14304f;
    color: #fff;
    padding: 14px 12px;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
    width: 150px;
    font-weight: 600;
    letter-spacing: 0.04em;
    border: 1px solid #14304f;
    font-size: 0.95em;
}

.seminar-article .info-table td,
.seminar-article table td {
    padding: 16px 18px;
    border: 1px solid #c3cad2;
    line-height: 1.75;
    background: #fff;
    vertical-align: top;
    word-break: break-word;
}

/* ---------- スケジュール行 ---------- */

.seminar-article .schedule-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid #d8dde3;
}

.seminar-article .schedule-row {
    display: grid;
    grid-template-columns: 90px 1fr auto auto;
    align-items: center;
    gap: 14px;
    padding: 11px 14px;
    background: #fff;
    border-bottom: 1px solid #d8dde3;
}

.seminar-article .schedule-row:last-child { border-bottom: none; }

.seminar-article .schedule-row:nth-child(even) { background: #f6f7f9; }

.seminar-article .badge {
    display: inline-block;
    padding: 4px 10px;
    font-size: 0.76em;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.06em;
    border: 1px solid currentColor;
    white-space: nowrap;
}

.seminar-article .badge-real {
    background: #d29028;
    color: #14304f;
    border-color: #d29028;
}

.seminar-article .badge-online {
    background: #fff;
    color: #14304f;
    border-color: #14304f;
}

.seminar-article .schedule-date {
    font-weight: 500;
    color: #14304f;
    font-size: 0.98em;
}

.seminar-article .schedule-date strong {
    font-size: 1.1em;
    color: #14304f;
}

.seminar-article .schedule-time {
    color: #5a6470;
    font-size: 0.92em;
    font-feature-settings: "tnum";
}

.seminar-article .schedule-price {
    font-weight: 700;
    color: #b8362b;
    font-size: 1.08em;
    font-feature-settings: "tnum";
}

.seminar-article .schedule-price::after {
    content: "（税込）";
    font-size: 0.65em;
    color: #5a6470;
    font-weight: 400;
    margin-left: 3px;
}

.seminar-article .note {
    margin: 12px 0 0;
    font-size: 0.85em;
    color: #5a6470;
    line-height: 1.6;
}

.seminar-article .caption {
    font-size: 0.85em;
    color: #5a6470;
    margin: 6px 0 0;
}

/* ==========================================================================
   CTA
   ========================================================================== */

.seminar-article .cta-section {
    text-align: center;
    margin: 36px 0 8px 0;
    padding: 26px 22px;
    background: #f6f7f9;
    border: 1px solid #c3cad2;
    border-top: 3px solid #d29028;
}

.seminar-article .cta-lead {
    font-weight: 700;
    color: #14304f;
    margin-bottom: 14px;
    font-size: 1.08em;
}

.seminar-article .q_button_wrap {
    text-align: center;
    margin: 0;
}

.seminar-article .cta-button {
    display: inline-block;
    background: #b8362b;
    color: #fff !important;
    padding: 14px 44px;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.08em;
    letter-spacing: 0.08em;
    border: 1px solid #8a2820;
}

/* ==========================================================================
   旧クラスの互換（topic / arrow-point など、念のため残す）
   ========================================================================== */

.seminar-article .topic {
    margin: 0 0 14px 0;
    padding: 0;
}

.seminar-article .topic p {
    position: relative;
    margin: 0 0 6px 0;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid #d8dde3;
    line-height: 1.7;
}

.seminar-article .topic p .arrow-point { display: none; }

.seminar-article .topic p:empty { display: none; }

.seminar-article h4 {
    font-size: 1.05em;
    color: #14304f;
    background: #f6f7f9;
    padding: 10px 14px;
    border: 1px solid #d8dde3;
    margin-top: 22px;
    margin-bottom: 14px;
    font-weight: 700;
}

/* ==========================================================================
   テーブル互換（s_table）
   ========================================================================== */

.s_table,
.seminar-article .s_table { width: 100% !important; }

.s_table table,
.seminar-article .s_table table { width: 100% !important; table-layout: auto !important; }

.s_table td, .s_table th,
.seminar-article .s_table td, .seminar-article .s_table th {
    white-space: normal !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
}
/* 旧サイトから移植: .eco-seminar-2026 （環ビ塾募集ページ用） */
/* ECO1000 2026年度実践塾 CSS */
/* WordPressテーマのデフォルトスタイルを完全リセット */
.post_content .eco-seminar-2026 {
    box-sizing: border-box !important;
}

.post_content .eco-seminar-2026 * {
    box-sizing: border-box !important;
}

/* リンク色のリセット - デフォルトはWordPressテーマのリンク色を無効化 */
.post_content .eco-seminar-2026 a {
    text-decoration: none !important;
}

.eco-seminar-2026 {
    font-family: 'Helvetica Neue', Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
    line-height: 1.5;
    color: #333;
    max-width: 1200px;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* ヘッダーバナー */
.seminar-hero {
    display: none !important;
}

.hero-content {
    position: relative;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: white;
    color: #003d5c;
    padding: 12px 28px !important;
    border-radius: 30px;
    margin-bottom: 20px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    border: 3px solid #ff6b35;
}

.badge-year {
    font-size: 24px;
    font-weight: 900;
    color: #ff6b35;
    letter-spacing: 0.05em;
}

.badge-text {
    font-size: 16px;
    font-weight: 700;
    color: #003d5c;
    letter-spacing: 0.1em;
}

.hero-title {
    font-size: 2.5em;
    font-weight: 700;
    margin: 15px 0 !important;
    line-height: 1.4;
}

.hero-subtitle {
    font-size: 1.1em;
    margin-bottom: 25px !important;
    opacity: 0.9;
}

/* セクション共通 */
.eco-seminar-2026 section {
    margin-bottom: 50px !important;
}

.section-title {
    font-size: 1.8em;
    font-weight: 700;
    padding-top: 30px !important;
    margin-bottom: 25px !important;
    color: #2c3e50;
    border-bottom: 2px solid #003d5c;
    padding-bottom: 12px !important;
    display: flex;
    align-items: center;
    gap: 12px;
}

.title-icon {
    font-size: 0.9em;
    color: #003d5c;
}

/* 実践塾について */
.about-content {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.about-card {
    background: #f8f9fa;
    padding: 25px !important;
    border-radius: 6px;
}

.highlight-card {
    background: #f8f9fa;
}

/* 特徴カード - 3列 */
.about-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 20px !important;
}

.feature-number {
    display: inline-block;
    width: 40px;
    height: 40px;
    background: #003d5c;
    color: white;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1em;
    font-weight: 700;
    margin-bottom: 12px !important;
}

/* おすすめボックス */
.recommendation-box {
    background: #fff8f0;
    padding: 25px !important;
    border-radius: 6px;
    border: 1px solid #f0e0d0;
}

.rec-title-icon {
    font-size: 0.9em;
    color: #003d5c;
}

.rec-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.rec-item {
    background: white;
    padding: 12px 15px !important;
    border-radius: 4px;
    font-weight: 500;
    color: #555;
    border: 1px solid #e8e8e8;
}

/* 満足度バナー */
.satisfaction-banner {
    background: white;
    padding: 40px 50px !important;
    border-radius: 8px;
    border: 2px solid #e0e0e0;
    text-align: center;
}

.satisfaction-left {
    margin-bottom: 25px !important;
}

.satisfaction-label {
    font-size: 1.4em;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 20px !important;
    line-height: 1.4;
}

.satisfaction-number {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 5px;
}

.satisfaction-number .number {
    font-size: 6em;
    font-weight: 900;
    color: #003d5c;
    line-height: 1;
}

.satisfaction-number .percent {
    font-size: 3em;
    font-weight: 700;
    color: #003d5c;
}

/* カウントアップアニメーション用 */
.satisfaction-number .number {
    transition: all 0.3s ease;
}

.satisfaction-number .number.counting {
    color: #ff6b35;
}

.satisfaction-right {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
}

.satisfaction-note {
    font-size: 1em;
    color: #666;
    line-height: 1.6;
    margin: 0 !important;
}

.satisfaction-link {
    display: inline-flex !important;
    align-items: center !important;
    color: #003d5c !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    font-size: 1em !important;
    padding: 12px 30px !important;
    border: 2px solid #003d5c !important;
    border-radius: 4px !important;
    transition: all 0.3s ease !important;
}

.satisfaction-link:hover {
    background: #003d5c !important;
    color: white !important;
    text-decoration: none !important;
}

/* スケジュールリスト */
.schedule-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 15px !important;
}

.schedule-item {
    background: transparent;
    color: #2c3e50;
    padding: 0 !important;
    font-size: 1.1em;
    font-weight: 600;
    text-align: left;
}

.schedule-item mark {
    background: linear-gradient(transparent 60%, #b3e5fc 60%);
    font-weight: 600;
    font-style: normal;
}

/* 参加費用 - 最大2列 */
.pricing-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    margin-top: 25px !important;
}

.pricing-card {
    background: white;
    padding: 30px 25px !important;
    border-radius: 6px;
    border: 2px solid #e0e0e0;
    position: relative;
}

.pricing-card.annual {
    border-color: #003d5c;
}

.pricing-card.annual::before {
    display: none;
}

.pricing-amount {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-bottom: 25px !important;
    padding: 18px 0 !important;
    border-top: 1px solid #e8e8e8;
    border-bottom: 1px solid #e8e8e8;
}

.pricing-features {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pricing-features .feature {
    padding: 10px 12px !important;
    background: #f8f9fa;
    border-radius: 4px;
    color: #555;
    font-weight: 500;
}

/* CTAセクション */
.seminar-cta-section {
    background: #003d5c;
    padding: 40px 30px !important;
    border-radius: 8px;
}

.cta-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 15px !important;
}

.btn-primary,
.btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 30px !important;
    border-radius: 4px;
    font-size: 1em;
    font-weight: 600;
    text-decoration: none;
}

.btn-primary {
    background: white !important;
    color: #003d5c !important;
}

.btn-primary:hover {
    background: #f8f9fa !important;
    color: #003d5c !important;
}
/* 旧サイト 739 系装飾（strategy-item / arrow-point / topic etc）*/
.seminar-article {
            font-family: 'Helvetica Neue', Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
            line-height: 1.8;
            color: #333;
            max-width: 98%;
            margin: 0 auto;
            padding: 20px;
            background-color: #f9f9f9;
        }

.seminar-article img {
            width: 100%;
            height: auto;
            margin-bottom: 20px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }

.seminar-article h2 {
            font-size: 1.6em;
            color: #2c3e50;
            margin-top: 30px;
            margin-bottom: 15px;
            border-bottom: 2px solid #3498db;
            padding-bottom: 10px;
            text-align: left;
        }

.seminar-article h3 {
            font-size: 1.4em;
            color: #34495e;
            margin-top: 20px;
            margin-bottom: 10px;
        }

.seminar-article p {
            margin-bottom: 18px;
            line-height: 1.9;
        }

.seminar-article .highlight-box {
            background-color: #fff;
            border-left: 5px solid #3498db;
            padding: 20px;
            margin: 20px 0;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }

.seminar-article .cta-button {
            display: inline-block;
            background-color: #e74c3c;
            color: white !important;
            padding: 12px 24px;
            text-decoration: none;
            border-radius: 5px;
            font-weight: bold;
            margin-top: 20px;
            transition: background-color 0.3s ease;
        }

.seminar-article .cta-button:hover {
            background-color: #c0392b;
        }

.seminar-article table {
            width: 100%;
            border-collapse: collapse;
            margin-bottom: 20px;
            background-color: #fff;
        }

.seminar-article th,
        .seminar-article td {
            border: 1px solid #ddd;
            padding: 12px;
            text-align: left;
        }

.seminar-article th {
            background-color: #f2f2f2;
            font-weight: bold;
        }

.seminar-article ul {
            padding-left: 20px;
        }

.seminar-article li {
            margin-bottom: 10px;
        }

.seminar-article .special-feature {
            background-color: #e8f4f8;
            padding: 20px;
            border-radius: 5px;
            margin-bottom: 20px;
        }

.seminar-article .feature-item {
            background-color: #fff;
            padding: 15px;
            margin-bottom: 15px;
            border-radius: 5px;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        }

/* 追加CSS */
        .seminar-article .point-list {
            padding-left: 20px;
            margin-bottom: 15px;
            position: relative;
        }

.seminar-article .topic {
            margin-left: 0;
            margin-bottom: 20px;
            padding: 15px;
            background-color: #f5f5f5;
            border-radius: 8px;
        }

.seminar-article .emphasis {
            font-weight: bold;
            color: #e74c3c;
        }

.seminar-article .numbered-point {
            background-color: #3498db;
            color: white;
            width: 24px;
            height: 24px;
            border-radius: 50%;
            display: inline-block;
            text-align: center;
            line-height: 24px;
            margin-right: 8px;
            font-weight: bold;
        }

.seminar-article .arrow-point {
            color: #e67e22;
            font-weight: bold;
            margin-right: 5px;
        }

/* 強調表示用スタイル */
        .seminar-article .highlight-text {
            background: linear-gradient(transparent 60%, #fff59d 60%);
            font-weight: bold;
        }

.seminar-article .important-text {
            color: #e74c3c;
            font-weight: bold;
        }

.seminar-article .underline-text {
            text-decoration: underline;
            text-decoration-color: #3498db;
            text-decoration-thickness: 2px;
            text-underline-offset: 3px;
        }

/* 会社概要テーブル用スタイル */
        .seminar-article .company-table {
            width: 100%;
            border-collapse: collapse;
            margin: 15px 0;
            background-color: #fff;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }

.seminar-article .company-table th {
            background-color: #3498db;
            color: white;
            padding: 12px 15px;
            text-align: left;
            font-weight: bold;
            width: 25%;
        }

.seminar-article .company-table td {
            padding: 12px 15px;
            border-bottom: 1px solid #ecf0f1;
        }

.seminar-article .company-table tr:last-child td {
            border-bottom: none;
        }

.seminar-article .company-table tr:hover {
            background-color: #f8f9fa;
        }

.seminar-article .section-header {
            background-color: #34495e;
            color: white;
            padding: 10px 15px;
            border-radius: 5px;
            margin-top: 30px;
            margin-bottom: 20px;
        }

.seminar-article .day-header {
            background-color: #2ecc71;
            color: white;
            padding: 10px 15px;
            border-radius: 5px;
            margin-bottom: 15px;
        }

.seminar-article .content-block {
            margin-bottom: 25px;
            padding: 20px;
            background-color: white;
            border-radius: 8px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
        }

.seminar-article .summary-point {
            font-size: 1.05em;
            margin-bottom: 18px;
            border-left: 4px solid #3498db;
            padding-left: 15px;
            line-height: 2;
        }

.seminar-article h4 {
            background-color: #f0f8ff;
            padding: 12px 15px;
            border-left: 4px solid #3498db;
            margin-top: 30px;
            margin-bottom: 18px;
            border-radius: 4px;
        }

/* 空の要素を非表示にする */
        .seminar-article .topic p:empty {
            display: none;
        }

/* 空のコンテンツを持つ要素を非表示にする */
        .seminar-article .topic p:blank {
            display: none;
        }

/* 矢印ポイントを含む段落のスタイリング - 修正版 */
        .seminar-article .topic p {
            margin-bottom: 15px;
            border-left: 3px solid #e67e22;
            background-color: #fff8f0;
            padding: 12px 15px;
            border-radius: 5px;
            line-height: 1.8;
        }

/* 最後の段落の下マージンを消す */
        .seminar-article .topic p:last-child {
            margin-bottom: 0;
        }

/* 矢印のスタイル */
        .seminar-article .topic p .arrow-point {
            display: inline-block;
            color: #e67e22;
            font-weight: bold;
            margin-right: 8px;
            flex-shrink: 0;
        }

/* 優しいテーブル調整 - 文字サイズそのまま */
        .s_table,
        .seminar-article .s_table {
            overflow: visible !important;
            overflow-x: visible !important;
            width: 100% !important;
        }

.s_table table,
        .seminar-article .s_table table {
            overflow: visible !important;
            overflow-x: visible !important;
            width: 100% !important;
            table-layout: auto !important;
        }

/* セルの改行対応のみ */
        .s_table td,
        .s_table th,
        .seminar-article .s_table td,
        .seminar-article .s_table th {
            white-space: normal !important;
            word-wrap: break-word !important;
            word-break: break-word !important;
            overflow-wrap: break-word !important;
            font-size: 16px;
        }

/* 戦略リスト */
        .seminar-article .strategy-list {
            margin-bottom: 20px;
        }

.seminar-article .strategy-item {
            padding: 14px 16px;
            margin-bottom: 10px;
            background-color: #fff;
            border-left: 4px solid #3498db;
            border-radius: 4px;
            line-height: 1.8;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
        }

.seminar-article .strategy-item strong {
            color: #2c3e50;
            font-size: 1.05em;
        }

.seminar-article .strategy-number {
            font-size: 1.2em;
            margin-right: 6px;
        }

/* 開催概要テーブル項目列の折り返し防止 */
        .seminar-article .s_table td:first-child,
        .seminar-article .s_table th:first-child {
            white-space: nowrap !important;
            word-break: keep-all !important;
        }

/* 参加費用テーブル */
        .seminar-article .eco-price-table {
            width: 100% !important;
            border-collapse: separate !important;
            border-spacing: 0 !important;
            border: 1px solid #ccc !important;
            border-radius: 5px !important;
            margin: 10px 0 0 !important;
            font-size: 0.95em;
            overflow: hidden;
        }

.seminar-article .eco-price-table th {
            background-color: #3498db !important;
            color: #fff !important;
            padding: 8px 12px !important;
            text-align: center;
            font-size: 0.9em;
            white-space: nowrap;
            border: none !important;
        }

.seminar-article .eco-price-table td {
            padding: 10px 12px !important;
            border: none !important;
            border-top: 1px solid #e0e0e0 !important;
            vertical-align: middle;
            line-height: 1.7;
        }

.seminar-article .eco-price-table td:last-child {
            white-space: nowrap !important;
        }

.seminar-article .eco-price-table tr:nth-child(2) td {
            background-color: #f0f6fb !important;
        }

.seminar-article .eco-price-table tr:nth-child(3) td {
            background-color: #fff !important;
        }

.seminar-article .eco-price {
            color: #c0392b;
            font-size: 1.1em;
            font-weight: bold;
            white-space: nowrap;
        }

.seminar-article .eco-price-note {
            font-size: 0.9em;
            color: #333;
            display: block;
            margin-top: 4px;
            line-height: 1.7;
        }
/* 旧 #650 系: .kankyo-article */
/* 環境ビジネス地域一番経営実践塾 - スタイル */
.kankyo-article {
    font-family: 'Helvetica Neue', Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
    line-height: 1.8;
    color: #333;
    max-width: 98%;
    margin: 0 auto;
    padding: 20px;
    background-color: #f9f9f9;
}

/* メインタイトル */
.kankyo-article .main-title {
    font-size: 1.4em;
    color: #2c3e50;
    text-align: center;
    margin-bottom: 30px;
    padding: 20px 30px;
    background: linear-gradient(135deg, #e8f4f8 0%, #f0f8ff 100%);
    border-radius: 8px;
    border-left: 5px solid #3498db;
    line-height: 1.8;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

/* 画像ブロック */
.kankyo-article .image-block {
    text-align: center;
    margin: 30px 0;
}

.kankyo-article .image-block img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* セクションヘッダー */
.kankyo-article .section-header {
    background-color: #34495e;
    color: white;
    padding: 12px 20px;
    border-radius: 5px;
    margin-top: 35px;
    margin-bottom: 20px;
    font-size: 1.4em;
    text-align: left;
}

/* コンテンツブロック */
.kankyo-article .content-block {
    margin-bottom: 25px;
    padding: 25px;
    background-color: white;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
}

.kankyo-article .content-block p {
    margin-bottom: 18px;
    line-height: 1.9;
}

/* テキスト強調スタイル */
.kankyo-article .text-highlight {
    background: linear-gradient(transparent 60%, #fff59d 60%);
    font-weight: 600;
    padding: 0 2px;
}

.kankyo-article .text-emphasis {
    color: #2c3e50;
    font-weight: 700;
}

.kankyo-article .text-underline {
    text-decoration: underline;
    text-decoration-color: #3498db;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.kankyo-article .purpose-list {
    color: #e74c3c;
    font-weight: 600;
}

.kankyo-article .price-text {
    color: #e74c3c;
    font-weight: 700;
    font-size: 1.1em;
}

/* ハイライトボックス */
.kankyo-article .highlight-box {
    background: linear-gradient(135deg, #fff9e6 0%, #fffbf0 100%);
    border-left: 5px solid #f39c12;
    padding: 20px;
    margin: 25px 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    border-radius: 5px;
}

.kankyo-article .satisfaction-text {
    font-size: 1.2em;
    font-weight: 600;
    color: #2c3e50;
    margin: 0;
    text-align: center;
}

.kankyo-article .emphasis-number {
    color: #e74c3c;
    font-size: 1.3em;
    font-weight: 700;
}

/* テーブルスタイル */
.kankyo-article .info-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.kankyo-article .info-table th {
    background-color: #3498db;
    color: white;
    padding: 15px;
    text-align: left;
    font-weight: bold;
    width: 25%;
    vertical-align: top;
}

.kankyo-article .info-table td {
    padding: 15px;
    border-bottom: 1px solid #ecf0f1;
    line-height: 1.8;
}

.kankyo-article .info-table tr:last-child td {
    border-bottom: none;
}

.kankyo-article .info-table tr:hover {
    background-color: #f8f9fa;
}

/* 駅情報 */
.kankyo-article .station-info {
    display: block;
    margin-top: 10px;
    font-size: 0.95em;
    color: #555;
    line-height: 1.6;
}

/* 価格強調 */
.kankyo-article .price-emphasis {
    color: #e74c3c;
    font-weight: 700;
    font-size: 1.2em;
}

/* CTAボタン */
.kankyo-article .cta-button {
    display: inline-block;
    background: linear-gradient(to right, #e74c3c, #c0392b);
    color: white !important;
    padding: 15px 35px;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    font-size: 1.1em;
    margin-top: 20px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.kankyo-article .cta-button:hover {
    background: linear-gradient(to right, #c0392b, #a93226);
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}

.kankyo-article .q_button_wrap {
    text-align: center;
    margin: 25px 0;
}

/* リンクスタイル */
.kankyo-article a {
    color: #3498db;
    text-decoration: none;
    transition: color 0.3s ease;
}

.kankyo-article a:hover {
    color: #2980b9;
    text-decoration: underline;
}

/* テーブル調整 */
.kankyo-article .s_table {
    overflow: visible !important;
    overflow-x: visible !important;
    width: 100% !important;
}

.kankyo-article .s_table table {
    overflow: visible !important;
    overflow-x: visible !important;
    width: 100% !important;
    table-layout: auto !important;
}

.kankyo-article .s_table td,
.kankyo-article .s_table th {
    white-space: normal !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}
