@charset "UTF-8";
/* CSS Document */

	/* サブページ ------------------------------------------------------ */

		p {font-size:1.3rem}

        /* --- サブ背景設定 --- */
        .page-background-layer {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
            overflow: hidden;
            pointer-events: none;
        }

        .page-background-layer::before {
            content: '';
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background-color: var(--primary-color);
        }

        .bg-image-blur {
            position: absolute;
            top: -2.5%; left: -2.5%; width: 105%; 
            height: 2534px;
            background-image: url('https://gpach-hmsj2026.net/image/sub-header.jpg');
            background-size: cover;
            background-position: center top;
            filter: blur(6px);
            opacity: 0.8;
        }

        .bg-gradient-overlay {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background: linear-gradient(
                to bottom,
                rgba(0, 51, 102, 0.4) 0%,
                rgba(0, 51, 102, 0.9) 60%,
                var(--primary-color) 100%
            );
        }

      /* サブヒーロー ------------------------------------ */
        .sub-hero {
            background: transparent;
            color: #fff;
            padding: 120px 20px 90px;
            text-align: center;
            position: relative;
            z-index: 10;
        }

        .sub-hero h1 {
            font-size: 3.7rem;/*3.2*/
            margin: 0;
            letter-spacing: 2px;
            text-transform: uppercase;
            text-shadow: 0 2px 10px rgba(0,0,0,0.3);
        }
        
        .sub-hero p {
            font-size: 1.6rem;/*1.3*/
            margin: 15px 0 0;
            opacity: 0.9;
            font-weight: normal;
        }

      /* --- パンくず --- */
        .breadcrumb {
            margin-bottom: 50px;
            font-size: 1.2rem;/*1.1*/
            color: rgba(255,255,255,0.8);
        }
        .breadcrumb a { color: #fff; text-decoration: underline; }
        .breadcrumb span { margin: 0 10px; color: rgba(255,255,255,0.6); }



        /* 白背景パネル */
        .white-panel {
            background: rgba(255, 255, 255, 0.94);
            padding: 80px;
            border-radius: 12px;
            box-shadow: 0 5px 25px rgba(0,0,0,0.2);
            margin-bottom: 80px;
            backdrop-filter: blur(5px);
        }

        .content-title {
            font-size: 2.4rem;/*2.4*/
            color: var(--primary-color);
            border-left: 10px solid var(--accent-color);
            padding-left: 25px;
            margin-bottom: 50px;
            font-weight: bold;
            line-height: 1.3;
        }

        .content-title-jp {
            display: block;
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--primary-color);
            margin-top: 6px;
        }

        /* --- About Osaka / venue 見出し ----------------------- */
        .venue-h3 {
            font-size: 1.8rem;
            font-weight: bold;
            color: var(--primary-color);
            margin: 0 0 20px;
            padding-bottom: 10px;
            border-bottom: 2px solid rgba(0,51,102,0.15);
        }

        .venue-h4 {
            font-size: 1.4rem;
            font-weight: bold;
            color: var(--primary-color);
            margin: 30px 0 14px;
        }

        .venue-btn-row {
            margin: 30px 0 10px;
        }

        .venue-guide-btn {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 12px 28px;
            border-radius: 999px;
            background: rgba(0, 51, 102, 0.80);
            color: #fff;
            text-decoration: none;
            font-weight: bold;
            font-size: 1.2rem;
            box-shadow: 0 4px 12px rgba(0,51,102,0.18);
            transition: background 0.2s;
        }
        .venue-guide-btn:hover {
            background: rgba(0, 51, 102, 1);
        }

        /* 長いURLの折り返し */
        .white-panel a {
            overflow-wrap: break-word;
            word-break: break-all;
        }

        /* --- アクセスページ専用 --------------------------------- */

        /* 会場写真 横並び */
        .access-photo-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 16px;
            margin-bottom: 10px;
        }
        .access-photo-grid img {
            width: 100%;
            height: auto;
            border-radius: 8px;
            display: block;
        }

        /* アコーディオン内画像（単体） */
        .access-accordion-img {
            width: 100%;
            max-width: 800px;
            height: auto;
            border-radius: 6px;
            display: block;
            margin: 0 auto 20px;
            cursor: pointer;
        }
        .access-accordion-img:last-child { margin-bottom: 0; }

        /* 2×2 画像グリッド（常にフルワイド） */
        .access-img-grid-2x2 {
            display: grid;
            grid-template-columns: 1fr 1fr;
            column-gap: 12px;
            row-gap: 50px;
        }
        .access-img-grid-2x2 img {
            width: 100%;
            height: auto;
            display: block;
            cursor: pointer;
        }

        /* ライトボックストリガー hover */
        .lightbox-trigger { transition: opacity 0.15s; }
        .lightbox-trigger:hover { opacity: 0.85; }

        /* ライトボックス */
        #lightbox-overlay {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.88);
            z-index: 9999;
            align-items: center;
            justify-content: center;
            cursor: zoom-out;
        }
        #lightbox-overlay.active { display: flex; }
        #lightbox-img {
            max-width: 92vw;
            max-height: 88vh;
            object-fit: contain;
            border-radius: 4px;
            cursor: default;
        }
        #lightbox-close {
            position: fixed;
            top: 18px;
            right: 24px;
            background: none;
            border: none;
            color: #fff;
            font-size: 2.8rem;
            line-height: 1;
            cursor: pointer;
            opacity: 0.8;
            padding: 0;
        }
        #lightbox-close:hover { opacity: 1; }

        /* 単体画像 */
        .access-img-single img {
            width: 100%;
            height: auto;
            border-radius: 8px;
            display: block;
        }

        /* 7F アクセス テーブル */
        .access-time-table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
            font-size: 1.1rem;
            table-layout: fixed;
        }
        .access-time-table thead th {
            background: rgba(0,51,102,0.85);
            color: #fff;
            padding: 14px 16px;
            text-align: center;
            font-weight: bold;
            width: 50%;
        }
        .access-time-table .th-jp {
            display: block;
            font-size: 0.85rem;
            font-weight: normal;
            margin-top: 4px;
            color: rgba(255,255,255,0.85);
        }
        /* 中見出し行 */
        .access-section-header td {
            background: rgba(0,51,102,0.08);
            color: var(--primary-color);
            font-weight: bold;
            font-size: 1.15rem;
            padding: 10px 16px;
            border-top: 2px solid rgba(0,51,102,0.15);
        }
        .access-section-jp {
            font-weight: normal;
            color: #555;
            font-size: 1rem;
        }
        /* データ行 */
        .access-time-table tbody tr:not(.access-section-header):nth-child(odd) { background: #fff; }
        .access-time-table tbody tr:not(.access-section-header):nth-child(even) { background: rgba(0,51,102,0.03); }
        .access-time-table td {
            padding: 14px 16px;
            vertical-align: top;
            border-bottom: 1px solid rgba(0,51,102,0.08);
        }
        .access-time-table .info-en { margin-bottom: 6px; font-size: 1.05rem; }
        .access-time-table .info-jp { margin-bottom: 0; font-size: 0.95rem; color: #555; }
        /* 2列間の縦区切り線 */
        .access-time-table tbody tr:not(.access-section-header) td:first-child {
            border-right: 2px solid rgba(0,51,102,0.18);
        }
        .access-time-table thead th:first-child {
            border-right: 2px solid rgba(255,255,255,0.25);
        }

        /* フロアバッジ ([1F]など) */
        .accordion-trigger-floor {
            display: flex !important;
            align-items: center;
        }
        .floor-badge {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 2.6em;
            height: 2.6em;
            background: var(--primary-color);
            color: #fff;
            font-weight: 900;
            font-size: 0.88em;
            border-radius: 50%;
            margin-right: 12px;
            flex-shrink: 0;
            align-self: center;
            letter-spacing: 0;
            line-height: 1;
        }
        .accordion-trigger-floor .floor-label {
            flex: 1;
            display: block;
            line-height: 1.5;
        }

        /* アコーディオン見出し内の赤字注記 */
        .accordion-note-red {
            display: block;
            font-size: 0.82em;
            color: var(--accent-color);
            font-weight: normal;
            margin-top: 6px;
            line-height: 1.5;
        }

        /* タクシー内 before/after 見出し */
        .taxi-time-heading {
            display: block;
            background: rgba(0,51,102,0.25);
            color: var(--primary-color);
            font-weight: bold;
            font-size: 1.1rem;
            padding: 8px 14px;
            border-radius: 4px;
            margin: 28px 0 14px;
        }

        /* モバイル対応 */
        @media (max-width: 768px) {
            .access-photo-grid {
                grid-template-columns: 1fr;
            }
            .access-img-grid-2x2 {
                grid-template-columns: 1fr;
            }
            .access-accordion-img { max-width: 100%; }
            .access-img-grid-2x2 { max-width: 100%; }
            .access-time-table { font-size: 0.9rem; }
            .access-time-table thead th,
            .access-time-table td { padding: 10px 10px; }
            .access-section-header td { font-size: 1rem; padding: 8px 10px; }
        }

        /* 概要テーブル */
        .outline-dl {
            display: grid;
            grid-template-columns: 340px 1fr;
            border-top: 1px solid var(--border-color);
            margin-top: 40px;
            gap: 0;
        }

        .outline-dt, .outline-dd {
            padding: 40px 30px;
            border-bottom: 1px solid var(--border-color);
            font-size: 1.3rem;/*1.3*/
            vertical-align: top;
            background-color: transparent;
            margin: 0;
        }

        .outline-dt {
            color: var(--primary-color);
            font-weight: bold;
            display: flex;
            align-items: flex-start;
            gap: 15px;
        }
        
        .outline-dt i {
            margin-top: 6px;
            color: var(--accent-color);
            width: 30px;
            font-size: 1.5rem;
            text-align: center;
        }

        .outline-dd {
            color: #333;
        }

        /* 英語・日本語の情報の整理 */
        .info-group {
            display: flex;
            flex-direction: column;
            gap: 15px;
        }

        .info-en {
            font-size: 1.4rem;/*1.3*/
            font-weight: normal;
            line-height: 1.5;
            color: #222;
        }

        .info-jp {
            font-size: 1.2rem;/*1.1*/
            color: #666;
            line-height: 1.5;
            padding-left: 0;
            border-left: none;
            margin-top: 5px;
        }

        /* Chairs (2カラムレイアウト) */
        .chairs-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 80px;
			margin-bottom: 80px;
        }

        .chair-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
        }

        .chair-img {
            width: 230px; 
            height: 230px;
            background-color: #ddd;
            margin-bottom: 30px;
            border-radius: 6px;
            overflow: visible; 
        }
        
        .chair-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .chair-name-en {
            font-size: 1.8rem;
            font-weight: bold;
            color: var(--primary-color);
            line-height: 1.2;
			margin-bottom: 20px;
        }

        .chair-name-jp {
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--text-color);
            margin-bottom: 20px;
            display: block;
        }

        .chair-titles {
            font-size: 2rem;/*1.2*/
            color: #444;
            line-height: 1.6;
            text-align: left;
            width: 100%;
            border-top: 1px solid rgba(0,0,0,0.1);
            padding-top: 25px;
        }

        .chair-titles p {
			font-size: 1.2rem;
            margin: 0 0 10px;
        }
        
        .chair-titles-jp {
            margin-top: 20px;
            color: #666;
            font-size: 1.4rem;/*1.1*/
        }

		/*greetingページーーーーーーーーーーーーーー*/
		hr.section-divider {
            border: 0;
            height: 1px;
            background: var(--border-color);
            margin: 40px 0;
        }

		/* 引用スタイル */
        .sub-quote {
            color: var(--primary-color);
            font-style: italic;
            font-weight: bold;
        }

        .greeting-list {
            margin-bottom: 1.5rem;
            /* インデントを約1文字分深く設定 (1.5rem -> 3.0rem) */
            padding-left: 3.0rem;
        }
        ul.greeting-list {
            list-style: disc;
        }
        ol.greeting-list {
            list-style: decimal;
        }
        .greeting-list li {
            font-size: 1.3rem;
            margin-bottom: 0.5rem;
        }

		.text-jp p,
        .text-jp li {
            font-size: 1.2rem !important; /* !importantで確実に既存の指定を上書きします */
        }

		/* --- メンバーページ(3カラム用) ---------------------------- */
		.member h3{
			color: var(--primary-color);
			margin-top:80px;
			font-size:1.7rem;
			padding-bottom: 15px;
			border-bottom: 2px solid #ddd;
			line-height: 1.5rem;
		}

		.member span{
			font-size:1rem;
			color: #777;
			font-weight: normal;
		}

		.member-grid {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 60px 60px;
			margin-top: 40px;
		}

        .member-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
        }

        .member-img {
            width: 100%;
            max-width: 220px;
            aspect-ratio: 1 / 1;
            background-color: #eee;
            margin-bottom: 25px;
            border-radius: 6px;
            overflow: hidden;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }
        
        .member-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .member-name-en {
            font-size: 1.6rem;
            font-weight: bold;
            color: var(--primary-color);
            line-height: 1.2;
            margin-bottom: 5px;
        }

        .member-name-jp {
            font-size: 1.3rem;
            font-weight: bold;
            color: var(--text-color);
            margin-bottom: 8px;
            display: block;
        }
		.member-affili-en{
			font-size: 1.1rem;
            font-weight: bold;
            color: var(--accent-color);
            margin-bottom: 8px;
            display: block;
			
}

        .member-info {
            font-size: 0.8rem;
            color: #555;
            line-height: 1.5;
            text-align: left;
            width: 100%;
            border-top: 1px solid #ccc;
        }

		.member-info .text-jp{
            font-size: 1.1rem;
        }

        /* --- フッターエリア --- */
        footer {
			position: relative;
            z-index: 30;
            background-color: #fff;
        }


        /* --- レスポンシブ対応 (768px以下) --------------------------------- */
        @media (max-width: 768px) {
			p{font-size: 1.1rem;}
			.white-panel { padding: 30px 20px; }
            
            .sub-hero { padding: 60px 20px; }
            .sub-hero h1 { font-size: 1.7rem;
							margin-top:40px;}
            .sub-hero p { font-size: 1rem; }
			
			/* 日本語セクション用スタイル (PC表示) */
      		  /* .white-panel を付けて優先度を上げています */
       	    .white-panel .text-jp p,
      	    .white-panel .text-jp li {
            font-size: 1rem !important; 
        	}
			.white-panel .greeting-list li {
            font-size: 1rem;
            margin-bottom: 0.5rem;
        	}
			.white-panel .text-jp .member-info { 
                font-size: 1.0rem !important; 
            }
			
			
			/* メンバー紹介スマホ対応 (1カラム) */
			.member h3{
				font-size: 1.3rem;
			}
            .member-grid {
                grid-template-columns: 1fr;
                gap: 50px;
            }
            .member-img {
                max-width: 200px;
            }
            .member-name-en { font-size: 1.4rem; }
            .member-name-jp { font-size: 1.2rem; }
            .member-info { font-size: 1.1rem; }
			.member-info .text-jp{font-size: 1rem;}
			
			
		/* スマホ時のGrid設定 */
            .outline-dl { grid-template-columns: 1fr; margin-top: 20px; }
            
            .outline-dt { 
                border-bottom: none; 
                padding: 15px 0 5px 0;
                background: transparent; 
                font-size: 1.1rem;
            }
            .outline-dt i { font-size: 1.2rem; }
            
            /* dd */
            .outline-dd { 
                padding: 0 0 20px 0;
                font-size: 1.1rem;
            }
			
			.info-en { font-size: 1.1rem; }
            .info-jp { font-size: 0.9rem; }

            /* Chairs スマホ対応 */
            .chairs-grid { grid-template-columns: 1fr; gap: 40px; }
            .chair-img { width: 220px; height: 220px; margin-bottom: 15px; } /* スマホ用サイズに戻す */
            .chair-name-en { font-size: 1.3rem; }
            .chair-name-jp { font-size: 1.1rem; margin-bottom: 10px; }
            .chair-titles p{ font-size: 1.1rem; text-align: left; }
            .chair-titles-jp p{ font-size: 1rem; }

            .content-title { font-size: 1.5rem; margin-bottom: 25px; padding-left: 15px; border-left-width: 5px; }

            .footer-inner { padding: 0 20px; max-width: 100%; }
            .secretariat-section { padding: 50px 0; }
            .secretariat-container { grid-template-columns: 1fr; gap: 40px; }
            .footer-banners { align-items: center; }
            .footer-banner-item { width: 80%; }
            .footer-ssl { text-align: center; margin-top: 20px; }
            .secretariat-info h3 { font-size: 1.2rem; margin-bottom: 10px; }
            .secretariat-info p { font-size: 0.9rem; }
            .copyright-section { padding: 10px 20px; font-size: 0.8rem; }
		}

/* --- Sponsorship table: zebra + strong header ------------------- */

.sponsor-table-wrap{
  margin-top: 40px;
  overflow-x: auto;
}

/* テーブルは通常の“表”に戻す */
.sponsor-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: none; 
  border-radius: 0px;
  overflow: hidden;
}

/* ヘッダー：背景濃いめ＋下線しっかり */
.sponsor-table thead th{
  padding: 16px 16px;
  text-align: left;
  color: #fff;
  font-weight: 800;
  font-size: 1.15rem;
  background: rgba(0, 51, 102, 0.85); /* 濃いめ */
  border-bottom: 4px solid rgba(0, 51, 102, 1); /* 下のラインを強く */
  white-space: nowrap;
}

/* 本文：ライン無し、余白は詰める */
.sponsor-table td{
  padding: 12px 16px;   /* ←スペース多すぎ対策 */
  border: none;         /* 本文のライン不要 */
  font-size: 1.15rem;
  vertical-align: middle;
}

/* 1行ごとに背景色（ゼブラ） */
.sponsor-table tbody tr:nth-child(odd){
  background: #ffffff;
}
.sponsor-table tbody tr:nth-child(even){
  background: rgba(0, 51, 102, 0.05);
}

/* 申込フォームリンク：シンプル hover（少し上へ） */
.table-link{
  color: rgba(0, 51, 102, 0.75);
  font-weight: 700;
  text-decoration: none;

  display: inline-flex;
  align-items: center;
  gap: 8px;

  /* ★ transform が効くための定番セット */
  transform: translateY(0);
  transition: transform 0.18s ease, color 0.18s ease;
}

.table-link i{
  color: inherit;
}

/* hover時：少し上へ */
.table-link:hover{
  color: rgba(0, 51, 102, 1);
  transform: translateY(-2px);
}

.sponsor-actions{
  margin-top: 35px;
  display: flex;
  justify-content: center;
}

.btn-download{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  background: rgba(0, 51, 102, 0.75); /* ← やさしいブルー */
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  box-shadow: 0 6px 16px rgba(0,51,102,0.18);
}

.btn-download:hover{
  background: rgba(0, 51, 102, 0.85);
}

/* 列幅（PCで安定） */
@media (min-width: 769px){
  .sponsor-table th:nth-child(1){ width: 45%; }
  .sponsor-table th:nth-child(2){ width: 20%; }
  .sponsor-table th:nth-child(3){ width: 35%; }
}

/* モバイル：行間を詰めつつ横スクロールで破綻しない */
@media (max-width: 768px){
  .sponsor-table thead th{
    font-size: 1.0rem;
    padding: 14px 12px;
  }
  .sponsor-table td{
    font-size: 1.0rem;
    padding: 11px 12px;
  }
	.btn-download{
    width: 100%;
    justify-content: center;
  }
}

/* --- Registration Page Styles (Added for Registration page) --- */

.registration-intro {
    margin-bottom: 50px;
    padding: 20px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 8px;
}

.lang-en {
    font-size: 1.2rem;
    font-weight: bold;
    color: var(--primary-color);
    margin-bottom: 5px;
}

.lang-jp {
    font-size: 1.1rem;
    color: var(--text-color);
}

.registration-links {
    display: flex;
    gap: 30px;
    margin-bottom: 60px;
}

.reg-item {
    flex: 1;
    background: #fff;
    padding: 40px 20px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    transition: transform 0.3s ease;
}

.reg-item:hover {
    transform: translateY(-5px);
}

.reg-item h2 {
    font-size: 1.4rem;
    margin-bottom: 25px;
    color: var(--primary-color);
}

.reg-btn {
    display: inline-block;
    padding: 15px 40px;
    background-color: var(--primary-color);
    color: #fff !important;
    border-radius: 50px;
    font-weight: bold;
    text-decoration: none;
    transition: background-color 0.3s;
}

.reg-btn:hover {
    background-color: var(--accent-color);
}

/* スマホ対応 */
@media (max-width: 768px) {
    .registration-links {
        flex-direction: column;
    }
    .reg-item {
        margin-bottom: 20px;
    }
}

/* ==========================================================================
   Registration Page Custom Extensions (sub.cssの末尾に上書き・追記)
   ========================================================================= */

/* ページ内スクロールをヌルッと滑らかにする設定 */
html {
    scroll-behavior: smooth;
}

/* 英日テキストの間隔微調整 */
.registration-intro {
    margin-bottom: 40px;
}

/* 登録区分テーブルの独自チューニング */
.reg-category-table {
    table-layout: fixed !important;
    width: 100% !important;
    word-break: break-word;
}
.sponsor-table-wrap .reg-category-table th{
  font-size: 1rem;
}

/* PC表示時の列幅比率設定 */
@media (min-width: 769px) {
    .reg-category-table th:nth-child(1),
    .reg-category-table td:nth-child(1) { width: 40%; }
    .reg-category-table th:nth-child(2),
    .reg-category-table td:nth-child(2) { width: 20%; }
    .reg-category-table th:nth-child(3),
    .reg-category-table td:nth-child(3) { width: 20%; }
    .reg-category-table th:nth-child(4),
    .reg-category-table td:nth-child(4) { width: 20%; }
}

.reg-category-table th {
    vertical-align: top;
    line-height: 1.4;
}
.reg-category-table th .th-sub {
    display: block;
    font-size: 0.7rem;
    font-weight: normal;
    color: rgba(255,255,255,0.8);
    margin-top: 6px;
}
.reg-category-table td {
    vertical-align: middle;
    font-size: 1.1rem;
    line-height: 1.4;
    padding: 14px 16px !important;
}
.reg-category-table td strong {
    color: var(--primary-color);
}
.reg-category-table .td-sub {
    display: block;
    font-size: 0.95rem;
    color: #666;
    margin-top: 4px;
}

/* 表組み内の上付き数字（注釈番号リンク）の装飾設定 */
.reg-category-table th sup a.sup-anchor,
.reg-category-table td sup a.sup-anchor {
    color: var(--accent-color) !important;
    font-weight: bold;
    text-decoration: none !important;
    padding: 0 2px;
    display: inline-block;
}
.reg-category-table th sup a.sup-anchor:hover,
.reg-category-table td sup a.sup-anchor:hover {
    opacity: 0.6;
}

/* 全列またぎ大見出し行 */
.table-group-header td {
    background-color: rgba(0, 51, 102, 0.08) !important;
    color: var(--primary-color) !important;
    font-size: 1.2rem !important;
    padding: 12px 16px !important;
    text-align: center !important;
    border-top: 1px solid var(--border-color) !important;
    border-bottom: 1px solid var(--border-color) !important;
}

.indent-cell {
    padding-left: 25px !important;
    text-align: left !important;
}
.center-cell {
    text-align: center !important;
    vertical-align: middle !important;
}
.check-mark {
    color: var(--primary-color);
    font-weight: bold;
    font-size: 1.4rem;
}

.check-mark sup{
    font-size: 0.6em;
}
.cross-mark {
    color: #ccc;
    font-weight: normal;
    font-size: 1.1rem;
}
.price-en {
    font-family: 'Roboto', sans-serif;
    font-weight: bold;
    color: var(--accent-color);
    font-size: 1.1rem;
}

/* テーブル下の注記エリア */
.reg-note-section {
    margin: 30px 0 60px;
    padding: 10px 0;
    background-color: transparent !important;
    border: none !important;
}
.note-list {
    margin: 0;
    padding-left: 20px;
    color: var(--accent-color) !important;
}
.note-list li {
    margin-bottom: 25px;
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--accent-color) !important;
}
.note-list li:last-child {
    margin-bottom: 0;
}
.note-en {
    display: block;
    font-weight: normal;
    color: var(--accent-color) !important;
}
.note-jp {
    display: block;
    font-size: 1.0rem;
    color: var(--accent-color) !important;
    margin-top: 4px;
}
.note-en strong,
.note-jp strong {
    color: var(--accent-color) !important;
}

/* ご指示：注釈3番、5番文末の「▲Back to table」を右揃えにするラッパー */
.back-to-table-wrap {
    text-align: right !important;
    margin-top: 8px;
    display: block;
    width: 100%;
}
.back-to-table-link {
    font-size: 0.95rem;
    font-weight: bold;
    color: var(--primary-color) !important; /* 通常時：青字 */
    text-decoration: underline !important;   /* 下線付き */
    transition: color 0.2s ease;
}
.back-to-table-link:hover {
    color: var(--accent-color) !important;  /* ホバー時：赤字 */
}

/* ご指示：268行目・389行目の文章中リンクを「通常青字＋下線、ホバー赤字＋下線」にする */
.standard-link {
    color: var(--primary-color) !important; /* 通常時：青字 (#003366) */
    text-decoration: underline !important;   /* 下線を表示 */
    font-weight: normal;
    transition: color 0.2s ease;
}
.standard-link:hover {
    color: var(--accent-color) !important;  /* ホバー時：赤字 (#b92a3e) */
    text-decoration: none !important;   /* 下線維なし */
}

/* ラインマーカー風ハイライト（標準：淡いクリーム色） */
.text-highlight-inline {
    background-color: #fffde7; 
    padding: 2px 4px;
    border-radius: 3px;
    display: inline !important;
}

/* 4番・文中用：文字背景にのみ密着し、色を一層濃く鮮やかにしたラインマーカー */
.text-highlight-inline.heavy {
    background-color: #FFED8B !important;
    padding: 4px 2px;
    line-height: 2.3;
    border-radius: 0;
    display: inline !important;
}

/* 4番文中のMeet the Expert用個別インラインマーカー */
.text-highlight-inline.heavy-inline {
    background-color: #FFED8B !important;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: bold;
    display: inline !important;
}

/* 不具合の原因となる透明ブロック要素化を完全に排除・リセット */
.text-highlight-inline.heavy .note-en,
.text-highlight-inline.heavy .note-jp {
    display: inline !important;
    background: transparent !important;
    color: var(--accent-color) !important;
}

/* アコーディオン共通設計 */
.accordion-container {
    margin-bottom: 60px;
}
.reg-accordion {
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    margin-bottom: 15px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    transition: box-shadow 0.3s ease;
}
.reg-accordion[open] {
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}
.accordion-trigger {
    display: block;
    padding: 20px 30px;
    background: rgba(0, 51, 102, 0.03);
    color: var(--primary-color);
    font-size: 1.3rem;
    font-weight: bold;
    cursor: pointer;
    position: relative;
    user-select: none;
    list-style: none;
}
.accordion-trigger::-webkit-details-marker {
    display: none;
}
.accordion-trigger::after {
    content: '\f0d7';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
    color: var(--primary-color);
}
.reg-accordion[open] .accordion-trigger::after {
    transform: translateY(-50%) rotate(180deg);
}
.reg-accordion[open] .accordion-trigger {
    border-bottom: 1px solid var(--border-color);
    background: rgba(0, 51, 102, 0.06);
}
.accordion-content {
    padding: 40px 30px;
    background: #ffffff;
}

.accordion-content .info-group p{
    margin-bottom:-0.7rem;
}

.accordion-sub-title {
    font-size: 1.4rem;
    color: var(--primary-color);
    margin: 40px 0 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid rgba(0, 51, 102, 0.1);
}

/* 1カラム縦流れ＋統一薄ブルー角丸ブロックのタイムライン設計 */
.timeline-v-flow {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 30px 0;
}
.timeline-flow-box {
    width: 100%;
    background-color: rgba(0, 51, 102, 0.04);
    border: 1px solid rgba(0, 51, 102, 0.15);
    border-radius: 12px;
    padding: 25px 30px;
    box-sizing: border-box;
}
.flow-date {
    font-size: 1.2rem;
    font-weight: bold;
    color: var(--primary-color);
    border-bottom: 1px dashed rgba(0, 51, 102, 0.2);
    padding-bottom: 10px;
    margin-bottom: 15px;
}
.flow-body {
    font-size: 1.1rem;
    line-height: 1.6;
}
.flow-body .info-en {
    display: block;
    color: #222;
    font-weight: normal;
}
.flow-body .info-jp {
    display: block;
    margin-top: 6px;
    color: #555;
}
.flow-arrow {
    margin: 15px 0;
    color: var(--accent-color);
    font-size: 1.5rem;
    text-align: center;
}

/* 静的情報ボックス */
.static-info-box {
    padding: 30px;
    background: #fafafa;
    border: 1px solid #eee;
    border-radius: 8px;
    margin-bottom: 60px;
}
.static-info-box p {
    color: var(--text-color) !important;
    font-weight: normal !important;
    font-size: 1.1rem;
    line-height: 1.6;
    margin: 0;
}
.static-info-box p i {
    margin-right: 8px;
    color: var(--primary-color);
}

/* 下部複製ボタンパーツ用の余白微調整 */
.font-bottom-links {
    border-top: 1px dashed var(--border-color);
    padding-top: 50px;
}

/* 最下部コンタクト調整 */
.contact-section-wrapper {
    margin-top: 50px;
    border-top: none; /* 上部の区切りを複製ボタン側へ移譲 */
    padding-top: 10px;
}
.contact-table-grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}
.contact-table-grid .secretariat-info h3 {
    border-bottom-width: 2px;
    font-size: 1.25rem;
    display: block;
}

/* 斜体・赤文字汎用クラス（必要に応じて活用可能） */
.text-red { color: var(--accent-color) !important; }
.text-red-bold { color: var(--accent-color) !important; font-weight: bold; }
.text-italic { font-style: italic !important; }

/* ==========================================================================
   Responsive (モバイル対応表示のオーバーライド)
   ========================================================================== */
@media (max-width: 768px) {
    .reg-category-table {
        table-layout: fixed !important;
        width: auto !important;
    }
    .reg-category-table th, .reg-category-table td {
        min-width: 200px;
        padding: 12px !important;
        box-sizing: border-box;
    }
    .reg-category-table th:first-child, .reg-category-table td:first-child {
        min-width: 280px;
        position: sticky;
        left: 0;
        background: #fff;
        box-shadow: 2px 0 5px rgba(0,0,0,0.1);
        z-index: 2;
    }
    .reg-category-table tr:nth-child(even) td:first-child {
        background: #f4f7f9;
    }
    .reg-category-table .table-group-header td {
        position: static !important;
        text-align: center !important;
        background-color: rgba(0, 51, 102, 0.12) !important;
    }
    .indent-cell {
        padding-left: 15px !important;
    }
    
    .accordion-trigger {
        padding: 15px 40px 15px 20px;
        font-size: 1.1rem;
    }
    .accordion-trigger::after {
        right: 20px;
    }
    .accordion-content {
        padding: 20px 15px;
    }
    .accordion-sub-title {
        font-size: 1.2rem;
        margin: 30px 0 15px;
    }
    .timeline-flow-box {
        padding: 15px 20px;
    }
    .flow-date {
        font-size: 1.05rem;
    }
    .flow-body {
        font-size: 0.95rem;
    }
    .contact-table-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ==========================================================================
   追加：スマホ表示最適化（大見出しのさらなる縮小 ＆ 1列目固定維持）
   ========================================================================== */

/* 表組み内の上付き数字（注釈番号リンク）の装飾設定 */
.reg-category-table th sup a.sup-anchor,
.reg-category-table td sup a.sup-anchor {
    color: var(--accent-color) !important;
    font-weight: bold;
    text-decoration: none !important;
    padding: 0 2px;
    display: inline-block;
}
.reg-category-table th sup a.sup-anchor:hover,
.reg-category-table td sup a.sup-anchor:hover {
    opacity: 0.6;
}

/* 768px以下のモバイル（iPhone13など）環境用の見やすさ改善オーバーライド */
@media (max-width: 768px) {
    /* テーブル全体の文字サイズをスマホ向けに最適化 */
    .reg-category-table td {
        font-size: 0.9rem !important;
        padding: 10px 8px !important;
    }
    
    .reg-category-table .td-sub {
        font-size: 0.8rem !important;
    }

    /* 1列目（項目見出し）の幅をスリム化しつつ、左右スライド時の「左端固定」を完全に維持 */
    .reg-category-table th:first-child, 
    .reg-category-table td:first-child {
        min-width: 160px !important;
        font-size: 0.9rem !important;
        padding-left: 10px !important;
        position: sticky !important; /* スライド時も固定する設定を維持 */
        left: 0 !important;
        background: #fff !important;
        box-shadow: 2px 0 5px rgba(0,0,0,0.1) !important;
        z-index: 2 !important;
    }

    /* ゼブラ行（偶数行）の1列目が固定された際も背景色が透けないよう同期 */
    .reg-category-table tr:nth-child(even) td:first-child {
        background: #f4f7f9 !important;
    }

    /* インデントセルの左余白をスマホ用に最適化 */
    .reg-category-table .indent-cell {
        padding-left: 10px !important;
    }

    /* 右側の各データ列の最小幅を調整しスクロールしやすく */
    .reg-category-table th, 
    .reg-category-table td:not(:first-child) {
        min-width: 150px !important;
    }

    /* 【ご指示の修正】列結合している大見出しをさらに小さく（0.85rem）、余白も最小限に縮小 */
    .reg-category-table .table-group-header td {
        font-size: 0.85rem !important; /* さらに小さく調整 */
        padding: 6px 8px !important;    /* 上下余白をさらに詰めてスリム化 */
        text-align: center !important;
        background-color: rgba(0, 51, 102, 0.12) !important;
    }

    /* 金額（JPY 30,000）の文字サイズ */
    .reg-category-table .price-en {
        font-size: 1.1rem !important;
    }

    /* チェックマーク等の記号サイズ */
    .reg-category-table .check-mark {
        font-size: 1.1rem !important;
    }
	.reg-category-table .check-mark sup {
        font-size: 0.6em;
    }
	
    .reg-category-table .cross-mark {
        font-size: 0.9rem !important;
    }
}

/* ==========================================================================
   Registration page only: 日本語段落の直後に来る英語段落の上余白を広げる
   （.registration-intro と .reg-accordion 内のみに限定）
   ========================================================================== */

/* イントロ（ブロックレイアウト）：margin collapse で JP→EN = 24.64px */
.registration-intro .info-jp + .info-en {
    margin-top: 1.4em;
}

/* アコーディオン（flex）：-0.7rem の負マージンをリセットしてイントロに近い間隔に揃える */
/* EN→JP: gap(15) + 0 + JP.mt(5) = 20px ≈ イントロの 17.6px */
/* JP→EN: gap(15) + 0 + 10px   = 25px ≈ イントロの 24.64px */
.reg-accordion .info-group p {
    margin-bottom: 0;
}
.reg-accordion .info-jp + .info-en {
    margin-top: 32px; /* 10px + <br>1つ分(line-height 21.6px) */
}

/* ==========================================================================
   reg-category-table：中間breakpoint（タブレット〜小型PC対応）
   ========================================================================== */

/* sponsor-table の white-space: nowrap を reg-category-table だけ解除 */
.reg-category-table thead th {
    white-space: normal;
}

/* 中型PC：1101px〜1300px */
@media (min-width: 1101px) and (max-width: 1300px) {
    .reg-category-table thead th {
        font-size: 0.92rem;
        padding: 14px 12px;
    }
    .reg-category-table th .th-sub {
        font-size: 0.68rem;
    }
}

/* タブレット・小型PC：769px〜1100px */
@media (min-width: 769px) and (max-width: 1100px) {
    .reg-category-table thead th {
        font-size: 0.82rem;
        padding: 10px 8px;
    }
    .reg-category-table th .th-sub {
        font-size: 0.62rem;
        margin-top: 3px;
    }
    .reg-category-table th:nth-child(1),
    .reg-category-table td:nth-child(1) { width: 36%; }
    .reg-category-table th:nth-child(2),
    .reg-category-table td:nth-child(2) { width: 21%; }
    .reg-category-table th:nth-child(3),
    .reg-category-table td:nth-child(3) { width: 21%; }
    .reg-category-table th:nth-child(4),
    .reg-category-table td:nth-child(4) { width: 22%; }
}

/* フォールバック：769px〜1100pxでもはみ出す場合は横スクロールで対応 */
@media (min-width: 769px) and (max-width: 1100px) {
    .sponsor-table-wrap {
        overflow-x: auto;
    }
    .reg-category-table {
        min-width: 620px;
    }
}