/* ---- ページ固有スタイル ---- */

.hero-tkc-seminar {
  background-image: url('https://images.unsplash.com/photo-1556745753-b2904692b3cd?w=1400&q=70');
}

    /* 開催概要カード */
    .seminar-overview {
      background: white;
      padding: 64px;
    }
    .seminar-main-card {
      background: var(--color-primary);
      border-radius: var(--radius-md);
      overflow: hidden;
      max-width: 900px;
      margin: 0 auto;
      box-shadow: var(--shadow-lg);
      position: relative;
    }
    .seminar-main-card::before {
      content: '';
      position: absolute;
      top: -60px;
      right: -60px;
      width: 280px;
      height: 280px;
      background: rgba(184,150,62,0.12);
      border-radius: 50%;
    }
    .seminar-main-card::after {
      content: '';
      position: absolute;
      bottom: -40px;
      left: 20px;
      width: 160px;
      height: 160px;
      background: rgba(255,255,255,0.04);
      border-radius: 50%;
    }
    .seminar-main-card-header {
      padding: 36px 48px 28px;
      position: relative;
      z-index: 1;
      border-bottom: 1px solid rgba(255,255,255,0.12);
    }
    .seminar-badge {
      display: inline-block;
      background: var(--color-gold);
      color: white;
      font-family: var(--font-serif);
      font-size: 14px;
      font-weight: 700;
      padding: 5px 18px;
      border-radius: 100px;
      letter-spacing: 0.1em;
      margin-bottom: 16px;
    }
    .seminar-main-title {
      font-family: var(--font-serif);
      font-size: 30px;
      font-weight: 700;
      color: white;
      letter-spacing: 0.08em;
      margin-bottom: 10px;
      line-height: 1.4;
    }
    .seminar-main-sub {
      font-size: 14px;
      color: rgba(255,255,255,0.75);
      line-height: 1.8;
    }
    .seminar-main-card-body {
      padding: 32px 48px;
      position: relative;
      z-index: 1;
    }
    .detail-table {
      width: 100%;
      border-collapse: collapse;
    }
    .detail-table tr {
      border-bottom: 1px solid rgba(255,255,255,0.1);
    }
    .detail-table tr:last-child { border-bottom: none; }
    .detail-table th {
      font-family: var(--font-en);
      font-size: 10px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--color-gold);
      padding: 14px 0 14px 0;
      text-align: left;
      width: 120px;
      font-weight: 500;
      vertical-align: top;
    }
    .detail-table td {
      font-size: 15px;
      color: white;
      padding: 14px 0;
      font-weight: 400;
      line-height: 1.7;
    }
    .detail-table td strong {
      font-size: 17px;
      font-weight: 700;
    }
    .seminar-note {
      font-size: 12px;
      color: rgba(255,255,255,0.6);
      margin-top: 6px;
      display: block;
    }
    .seminar-reserve-btn {
      display: block;
      background: white;
      color: var(--color-primary);
      text-align: center;
      padding: 18px 32px;
      border-radius: var(--radius-sm);
      font-family: var(--font-serif);
      font-size: 16px;
      font-weight: 700;
      letter-spacing: 0.08em;
      margin-top: 28px;
      transition: var(--transition);
    }
    .seminar-reserve-btn:hover {
      background: var(--color-gold);
      color: white;
    }
    .reserve-tel-wrap {
      text-align: center;
      margin-top: 16px;
      font-size: 12px;
      color: rgba(255,255,255,0.6);
    }
    .reserve-tel-wrap strong {
      font-size: 20px;
      color: white;
      font-weight: 700;
      letter-spacing: 0.08em;
      display: block;
      margin-top: 4px;
    }

    /* 相談内容カード */
    .consultation-section {
      background: var(--color-bg-light);
      padding: 64px;
    }
    .consult-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      max-width: 1000px;
      margin: 32px auto 0;
    }
    .consult-card {
      background: white;
      border: 1px solid var(--color-border);
      border-radius: var(--radius-md);
      padding: 28px 24px;
      transition: var(--transition);
    }
    .consult-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
    .consult-icon { font-size: 32px; margin-bottom: 12px; display: block; }
    .consult-title {
      font-family: var(--font-serif);
      font-size: 16px;
      font-weight: 600;
      color: var(--color-primary);
      margin-bottom: 10px;
      letter-spacing: 0.04em;
    }
    .consult-text {
      font-size: 13px;
      color: var(--color-text-light);
      line-height: 1.8;
    }
    .consult-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      margin-top: 12px;
    }
    .consult-tag {
      background: var(--color-bg-light);
      border: 1px solid var(--color-border);
      color: var(--color-text-muted);
      padding: 2px 8px;
      border-radius: 3px;
      font-size: 11px;
    }

    /* 予約フロー */
    .flow-section {
      background: white;
      padding: 64px;
    }
    .flow-steps {
      display: flex;
      align-items: flex-start;
      gap: 0;
      max-width: 860px;
      margin: 32px auto 0;
    }
    .flow-step {
      flex: 1;
      text-align: center;
      position: relative;
    }
    .flow-step:not(:last-child)::after {
      content: '›';
      position: absolute;
      top: 22px;
      right: -14px;
      font-size: 24px;
      color: var(--color-gold);
      z-index: 1;
    }
    .flow-step-num {
      width: 48px;
      height: 48px;
      background: var(--color-primary);
      color: white;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-en);
      font-size: 16px;
      font-weight: 600;
      margin: 0 auto 12px;
    }
    .flow-step-icon { font-size: 24px; margin-bottom: 8px; display: block; }
    .flow-step-title {
      font-family: var(--font-serif);
      font-size: 14px;
      font-weight: 600;
      color: var(--color-primary);
      margin-bottom: 6px;
    }
    .flow-step-desc {
      font-size: 12px;
      color: var(--color-text-muted);
      line-height: 1.7;
      padding: 0 8px;
    }

    /* よくある質問 */
    .faq-section {
      background: var(--color-bg-light);
      padding: 64px;
    }
    .faq-list {
      max-width: 800px;
      margin: 32px auto 0;
    }
    .faq-item {
      background: white;
      border-radius: var(--radius-sm);
      border: 1px solid var(--color-border);
      margin-bottom: 10px;
      overflow: hidden;
    }
    .faq-q {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 18px 24px;
      cursor: pointer;
      transition: var(--transition);
    }
    .faq-q:hover { background: var(--color-bg-light); }
    .faq-q-mark {
      width: 28px;
      height: 28px;
      background: var(--color-gold);
      color: white;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-en);
      font-size: 14px;
      font-weight: 700;
      flex-shrink: 0;
    }
    .faq-q-text {
      font-size: 14px;
      font-weight: 500;
      color: var(--color-text);
      flex: 1;
    }
    .faq-q-icon {
      color: var(--color-text-muted);
      font-size: 18px;
      transition: transform 0.3s;
    }
    .faq-item.open .faq-q-icon { transform: rotate(45deg); }
    .faq-a {
      display: none;
      padding: 16px 24px 20px 66px;
      font-size: 13.5px;
      color: var(--color-text-light);
      line-height: 1.9;
      background: var(--color-bg-light);
      border-top: 1px solid var(--color-border-light);
    }
    .faq-item.open .faq-a { display: block; }
    .faq-a-mark {
      display: inline-block;
      background: var(--color-teal);
      color: white;
      width: 24px;
      height: 24px;
      border-radius: 50%;
      text-align: center;
      line-height: 24px;
      font-size: 13px;
      font-weight: 700;
      margin-right: 8px;
      font-family: var(--font-en);
      vertical-align: middle;
    }

    @media (max-width: 900px) {
      .seminar-main-card-header,
      .seminar-main-card-body { padding: 28px 28px; }
      .consult-grid { grid-template-columns: 1fr 1fr; }
      .flow-steps { flex-wrap: wrap; gap: 24px; }
      .flow-step:not(:last-child)::after { display: none; }
      .consultation-section,
      .flow-section,
      .faq-section,
      .seminar-overview { padding: 48px 24px; }
    }
    @media (max-width: 600px) {
      .consult-grid { grid-template-columns: 1fr; }
    }
