@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ===== Seminar detail – design tokens ===== */
.bac-single-seminar{ --blue:#197CB5; --ink:#1a1a1a; --muted:#6f7a86; --line:#e6e9ee; --bg:#f6f8fb; }

.bac-single-seminar__hero{
  text-align:center; padding:56px 12px 12px;
}
.bac-single-seminar__title{
  font-size:32px; font-weight:700; letter-spacing:.05em; margin:0 0 10px;
}
.bac-single-seminar__lead{
  max-width:840px; margin:0 auto; color:var(--muted); line-height:1.9;
}

/* Card */
.bac-single-seminar__card{
  max-width:980px; margin:26px auto 32px; background:#fff; border:1px solid var(--line);
  border-radius:14px; overflow:hidden; box-shadow:0 8px 30px rgba(0,0,0,.06);
}

/* Table */
.bac-single-seminar__table{
  width:100%; border-collapse:separate; border-spacing:0;
}
.bac-single-seminar__table th{
  width:140px; background:var(--bg); color:#223; text-align:left; padding:14px 16px; border-bottom:1px solid var(--line);
}
.bac-single-seminar__table td{
  padding:14px 16px; border-bottom:1px solid var(--line); vertical-align:top;
}
.bac-single-seminar__table tr:last-child th,
.bac-single-seminar__table tr:last-child td{ border-bottom:none; }

.bac-single-seminar__table .badge{
  display:inline-block; margin-right:8px; padding:3px 10px; font-size:12px; color:#fff;
  background:#22303c; border-radius:999px;
}
.bac-single-seminar__table .wys p{ margin:0 0 .8em; }

/* 赤字注意 */
.bac-single-seminar__note{
  color:#c0191f; text-align:center; margin:16px 12px 0;
}

/* 見出し */
.bac-single-seminar__h2{
  max-width:980px; margin:24px auto 10px; font-size:20px; padding:0 6px;
  border-left:4px solid var(--blue);
}

/* フォームエリア */
.bac-single-seminar__form{ max-width:820px; margin:0 auto 80px; padding:8px 6px 0; }

/* モバイル */
@media (max-width:767px){
  .bac-single-seminar__title{ font-size:24px; }
  .bac-single-seminar__table th{ width:110px; }
}


/* ===== Expert detail – FINAL ===== */
.bac-expert{
  --blue:#197CB5; --ink:#1a1a1a; --muted:#6f7a86;
  --line:#E6ECF3; --band:#F6F9FD; --soft:#FAFCFF; --radius:12px;
}

/* ヘッダー */
.bac-expert__hero{
  padding:30px 12px 6px;
  background:linear-gradient(0deg,var(--soft),#fff);
  border-bottom:1px solid var(--line);
}
.bac-expert__head{
  max-width:1100px; margin:0 auto;
  display:grid; grid-template-columns:210px 1fr; gap:24px; align-items:center;
  padding-left:32px; padding-right:32px;         /* 横ガター */
}
.bac-expert__photo{
  width:210px; aspect-ratio:1/1; border-radius:var(--radius);
  overflow:hidden; border:1px solid var(--line); background:#fff;
}
.bac-expert__photo img{ width:100%; height:100%; object-fit:cover; }
.bac-expert__photo--ph{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; color:#999; background:#f2f4f7; }
.bac-expert__name{ margin:0 0 6px; font-size:32px; font-weight:700; letter-spacing:.02em; }
.bac-expert__headline{ color:#344; margin:0 0 6px; }

/* セクション */
.bac-expert__section{
  max-width:1100px; margin:26px auto; padding-left:32px; padding-right:32px;  /* 横ガター */
}

/* 見出し（シンプルピル + 左バー） */
.sec-ttl.pill{
  display:flex; align-items:center; gap:10px;
  margin:0 0 16px; padding:10px 14px 10px 16px;
  background:var(--band); border:1px solid var(--line); border-radius:12px;
  font-size:18px; color:#223; position:relative;
}
.sec-ttl.pill::before{
  content:""; width:6px; height:20px; background:var(--blue);
  border-radius:4px; flex:none;
}

/* 基本情報テーブル（罫線のみ・シンプル） */
.info-table{
  width:100%; border-collapse:separate; border-spacing:0;
  border:1px solid var(--line); border-radius:10px; overflow:hidden;
}
.info-table th, .info-table td{ padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:top; }
.info-table th{ width:180px; background:#F8FBFF; color:#223; }
.info-table tr:last-child th, .info-table tr:last-child td{ border-bottom:none; }
.info-table a.tel{ text-decoration:none; }
.info-table a:hover{ text-decoration:underline; }

/* 本文は区切り線なしで余白のみ */
.wys p{ margin:0 0 1em; line-height:1.9; }

.form-wrap{ padding-top:4px; }

/* レスポンシブ */
@media (max-width:1024px){
  .bac-expert__head,
  .bac-expert__section{ padding-left:24px; padding-right:24px; }
}
@media (max-width:767px){
  .bac-expert__head{ grid-template-columns:132px 1fr; gap:14px; }
  .bac-expert__photo{ width:132px; }
  .bac-expert__name{ font-size:24px; }
  .info-table th{ width:130px; }
  .bac-expert__head,
  .bac-expert__section{ padding-left:16px; padding-right:16px; }
}

/* --- SWELL専用 マイページスタイル --- */

.mypage-container {
    display: flex;
    flex-direction: column;
    gap: 30px;
    padding-top: 40px;
    padding-bottom: 60px;
}

/* PCサイズ以上で横並び */
@media (min-width: 960px) {
    .mypage-container {
        flex-direction: row;
        align-items: flex-start;
    }
    .mypage-sidebar {
        width: 260px;
        flex-shrink: 0;
        position: sticky;
        top: 120px; /* スクロール追従 */
    }
    .mypage-content-area {
        flex: 1;
        min-width: 0; /* はみ出し防止 */
    }
}

/* プロフィールカード */
.user-profile-box {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 4px;
    padding: 20px;
    text-align: center;
    margin-bottom: 20px;
}
.user-profile-box img {
    border-radius: 50%;
    margin-bottom: 10px;
    border: 2px solid var(--color_main); /* SWELLのメインカラー */
}
.user-name {
    font-weight: bold;
    margin-bottom: 5px;
}
.user-role-label {
    display: inline-block;
    background: #333;
    color: #fff;
    font-size: 12px;
    padding: 2px 8px;
    border-radius: 10px;
}

/* サイドナビゲーション */
.mypage-nav-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 4px;
}
.mypage-nav-list a {
    display: flex;
    align-items: center;
    padding: 15px;
    color: #333;
    text-decoration: none;
    border-bottom: 1px solid #eee;
    transition: all 0.3s;
}
.mypage-nav-list li:last-child a {
    border-bottom: none;
}
.mypage-nav-list a:hover,
.mypage-nav-list li.is-active a {
    background: var(--color_main_thin); /* SWELLの薄いメインカラー */
    color: var(--color_main);
    font-weight: bold;
}
.nav-icon {
    margin-right: 10px;
    width: 24px;
    text-align: center;
}
.nav-logout a {
    color: #d00;
    background: #fff5f5;
}

/* コンテンツエリア */
.mypage-content-area {
    background: #fff;
    padding: 30px; /* PC用余白 */
    border-radius: 4px;
    border: 1px solid #eee;
}
.mypage-title {
    font-size: 1.5em;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--color_main);
    margin-bottom: 30px;
}

@media (max-width: 599px) {
    .mypage-content-area {
        padding: 20px; /* スマホ用余白 */
    }
}

/* 共通の区切り線デザイン */
.bac-form-separator {
    background-color: #003366;
    color: #fff;
    padding: 12px 20px;
    font-weight: bold;
    font-size: 1rem;
    margin: 30px 0 10px 0;
    text-align: center;
}

/* 参加者の枠 */
.participant-group {
    border-bottom: 2px solid #f0f4f9;
}

/* 下部項目の背景 */
.footer-common {
    background-color: #f8fbfd;
}
/* フォーム全体 */
.bac-form-container { max-width: 900px; margin: 40px auto; border: 1px solid #e0e0e0; background: #fff; color: #333; }
.bac-form-row { display: flex; border-bottom: 1px solid #e0e0e0; }
.bac-label { flex: 0 0 260px; background: #f7f9fa; padding: 25px 20px; font-weight: bold; color: #003366; align-items: center; display: flex; }
.bac-field { flex: 1; padding: 20px; }
.required { font-size: 11px; padding: 2px 8px; border-radius: 3px; margin-left: auto; background: #e33333; color: #fff; }

/* 入力欄 */
.bac-field input[type="text"], .bac-field input[type="email"], .bac-field input[type="tel"], .bac-field input[type="number"], .bac-field select, .bac-field textarea {
    width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 16px;
}
.bac-flex-field { display: flex; gap: 15px; }
.select-item { flex: 1; font-size: 0.85rem; }

/* 区切り線 */
.bac-form-separator { background-color: #003366; color: #fff; padding: 12px 20px; font-weight: bold; text-align: center; margin-top: 20px; }

/* 送信ボタン */
.bac-submit-row { padding: 40px 20px; text-align: center; background: #fcfcfc; }
.bac-submit-row input[type="submit"] {
    background: #003366; color: #fff; border: none; padding: 20px 100px; font-size: 1.2rem; font-weight: bold; border-radius: 4px; cursor: pointer; transition: 0.3s;
}
.bac-submit-row input[type="submit"]:hover { background: #d9a62e; transform: translateY(-2px); }

/* スマホ対応 */
@media screen and (max-width: 768px) { .bac-form-row { flex-direction: column; } .bac-label { width: 100%; } .bac-flex-field { flex-direction: column; } }


/* 統合デザイン設定 */
.bac-seminar-detail { background-color: #f9fbff; padding: 40px 0; }
.bac-container { max-width: 1000px; margin: 0 auto; background: #fff; padding: 50px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-radius: 8px; }
.bac-header { text-align: center; margin-bottom: 40px; border-bottom: 2px solid #1a2e5a; padding-bottom: 20px; }
.bac-main-title { font-size: 2.2rem; color: #333; margin-bottom: 20px; }
.bac-lead-text { text-align: left; background: #f0f4f9; padding: 20px; border-radius: 5px; font-size: 0.95rem; line-height: 1.8; }
.bac-info-table { width: 100%; border-collapse: collapse; margin-top: 30px; }
.bac-info-table th { width: 220px; background-color: #f7f7f7; border: 1px solid #ddd; padding: 15px; text-align: center; font-weight: bold; }
.bac-info-table td { border: 1px solid #ddd; padding: 15px; line-height: 1.6; }
.bac-theme-cell { font-weight: bold; color: #197CB5 !important; font-size: 1.1rem; }
.bac-badge { background: #1a2e5a; color: #fff; padding: 2px 8px; border-radius: 3px; font-size: 0.8rem; margin-right: 10px; }
.bac-footer-note { color: #d32f2f; font-weight: bold; margin-top: 20px; }
.bac-action-area { text-align: center; margin-top: 50px; }
.bac-submit-btn { display: inline-block; background: #1a2e5a; color: #fff !important; padding: 20px 60px; border-radius: 50px; text-decoration: none; }
.bac-submit-btn .m-txt { display: block; font-size: 1.5rem; font-weight: bold; }
.bac-submit-btn .s-txt { display: block; font-size: 0.9rem; opacity: 0.8; }

@media (max-width: 768px) {
    .bac-container { padding: 20px; }
    .bac-main-title { font-size: 1.5rem; }
    .bac-info-table th, .bac-info-table td { display: block; width: 100%; text-align: left; }
    .bac-info-table th { background-color: #eef2f7; padding: 10px 15px; }
}

/* --------------------------------------------------
   研修会詳細：デザイン最終調整（単色 #407BB6）
-------------------------------------------------- */

.bac-modern-header {
    margin-bottom: 50px;
    text-align: center;
}

/* タイトル周りのサイズと配置 */
.bac-h-row1 {
    font-size: 2rem;
    font-weight: 800;
    color: #333;
    margin-bottom: 20px;
	margin-top:4rem;
}

.bac-h-row2 {
    font-size: 1.4rem;
    font-weight: bold;
    color: #444;
    line-height: 1.5;
    margin-bottom: 30px;
    padding: 0 40px;
}

.bac-h-row3 {
    font-size: 1rem;
    line-height: 1.8;
    color: #555;
    background: #f8faff;
    padding: 30px;
    border-left: 6px solid #407BB6;
    text-align: left;
    margin-top: 20px;
}

/* リスト部分（時間の秒を考慮した余白調整） */
.bac-modern-row {
    display: flex;
    padding: 25px 0;
    border-bottom: 1px solid #eee;
}

.bac-modern-dt {
    width: 220px;
    flex-shrink: 0;
    font-weight: bold;
    color: #1a2e5a;
    font-size: 1.1rem;
    display: flex;
    align-items: flex-start;
}

.bac-dot-marker {
    width: 8px;
    height: 8px;
    background: #407BB6;
    border-radius: 50%;
    margin-right: 12px;
    margin-top: 0.7em;
    display: inline-block;
}

/* --------------------------------------------------
   申し込みボタン（崩れ修正・単色 #407BB6）
-------------------------------------------------- */
.bac-action-footer {
    margin-top: 60px;
    text-align: center;
}

.bac-cta-btn-modern {
    display: inline-block !important;
    background-color: #407BB6 !important; /* グラデなし単色 */
    color: #fff !important;
    padding: 20px 80px !important;
    border-radius: 4px !important;
    text-decoration: none !important;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(64, 123, 182, 0.2);
    min-width: 400px; /* 横幅をしっかり確保 */
}

.bac-cta-btn-modern:hover {
    background-color: #336699 !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(64, 123, 182, 0.3);
}

.bac-cta-btn-modern .main-label {
    display: block;
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 5px;
}

.bac-cta-btn-modern .sub-label {
    display: block;
    font-size: 0.9rem;
    opacity: 0.9;
}

/* スマホ表示の最適化 */
@media (max-width: 767px) {
    .bac-h-row1 { font-size: 1.6rem; }
    .bac-h-row2 { font-size: 1.2rem; padding: 0; }
    .bac-modern-row { flex-direction: column; }
    .bac-modern-dt { width: 100%; margin-bottom: 10px; }
    
    .bac-cta-btn-modern { 
        min-width: 100%; 
        padding: 15px 10px !important;
    }
    .bac-cta-btn-modern .main-label { font-size: 1.3rem; }
}