@charset "UTF-8";/* ==========================================================================   0. 基本設定（グローバルルール）   ========================================================================== */html, body {    overflow-x: hidden;    width: 100%;    margin: 0;    padding: 0;}/* トップページのスライド画像が親をはみ出さないようにする */.hero-section img {    max-width: 100% !important;    display: block;}/* ==========================================================================   1. 基本設定（白の余白を美しく活かすベース）   ========================================================================== */* {    box-sizing: border-box;    margin: 0;    padding: 0;}body {    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;    font-size: 15px;    line-height: 1.8;    color: #333333;    background-color: #fcfcfc;}a {    color: #1a365d;    text-decoration: none;    transition: all 0.3s ease;}a:hover {    color: #3182ce;}li {    list-style: none;}.wrapper-container {    width: 100%;           /* 画面幅に追従 */    max-width: 1050px;     /* 最大幅を制限 */    margin: 0 auto;        /* 中央寄せ */    padding: 0 20px;       /* 内側の余白（画像がはみ出す基準になる） */    box-sizing: border-box; /* これが重要 */    background-color: #ffffff;    box-shadow: 0 0 10px rgba(0,0,0,0.03);}/* ==========================================================================   2. タイトルエリア   ========================================================================== */.header-main {    padding: 30px 0;}.site-title {    font-size: 1.6rem;    font-weight: 700;    letter-spacing: 0.08em;    color: #2a4073;}.site-title span {    font-size: 0.85rem;    font-weight: 400;    display: block;    color: #718096;    letter-spacing: 0.05em;    margin-top: 3px;}/* ==========================================================================   3. ナビゲーションメニュー   ========================================================================== */nav {    background-color: #2a4073;    margin: 0 -20px;}.nav-menu {    display: flex;    justify-content: space-around;}.nav-item {    flex: 1;    text-align: center;}.nav-item a {    display: block;    padding: 14px 0;    color: #ffffff;    font-size: 0.95rem;    font-weight: 500;    letter-spacing: 0.05em;    border-right: 1px solid rgba(255, 255, 255, 0.15);}.nav-item:last-child a {    border-right: none;}.nav-item a:hover {    background-color: #cbd5e1;       /* 💡青みがかった上品な薄いグレーに変えました */    color: #2a4073;                  /* 💡文字色を元のテーマカラー（紺色）に変えました */}/* ==========================================================================   4. メインビジュアル（自動横スライド＆丸ボタン連動仕様）   ========================================================================== *//* ヒーローセクション（トップ画像） */.hero-section {    position: relative;    width: calc(100% + 40px); /* 左右のpadding 20px x 2 を足して画面幅に合わせる */    margin-left: -20px;    margin-right: -20px;    height: 380px;    overflow: hidden;    margin-bottom: 40px;}.hero-section input[type="radio"] {    display: none !important;}.slider-wrapper {    display: flex;    width: 400%;    height: 100%;    transition: transform 0.8s ease-in-out;    animation: auto-slide 16s infinite ease-in-out;}.slide-box {    display: block;    width: 25%;    height: 100%;    background-size: cover;    background-position: center;    background-repeat: no-repeat;    position: relative;    cursor: pointer;}.slide-badge {    position: absolute;    bottom: 20px;    left: 20px;    background-color: rgba(42, 64, 115, 0.85);    color: #ffffff;    padding: 6px 14px;    font-size: 0.85rem;    border-radius: 20px;    letter-spacing: 0.05em;    pointer-events: none;    box-shadow: 0 2px 6px rgba(0,0,0,0.15);}.slide-box:hover .slide-badge {    background-color: #005aff;}/* ★自動スライドアニメーション */@keyframes auto-slide {    0%, 20%   { transform: translateX(0); }    25%, 45%  { transform: translateX(-25%); }    50%, 70%  { transform: translateX(-50%); }    75%, 95%  { transform: translateX(-75%); }    100%      { transform: translateX(0); }}.slider-dots {    position: absolute;    bottom: 20px;    right: 30px;    display: flex;    gap: 12px;    z-index: 10;}.dot-btn {    width: 12px;    height: 12px;    background-color: rgba(255, 255, 255, 0.4);    border: 1px solid rgba(0, 0, 0, 0.1);    border-radius: 50%;    cursor: pointer;    transition: all 0.3s ease;}.dot-btn:hover {    background-color: rgba(255, 255, 255, 0.8);}@keyframes dot-highlight-1 { 0%, 20%, 100% { background-color: #ffffff; transform: scale(1.2); } 21%, 99% { background-color: rgba(255, 255, 255, 0.4); transform: scale(1); } }@keyframes dot-highlight-2 { 25%, 45% { background-color: #ffffff; transform: scale(1.2); } 0%, 24%, 46%, 100% { background-color: rgba(255, 255, 255, 0.4); transform: scale(1); } }@keyframes dot-highlight-3 { 50%, 70% { background-color: #ffffff; transform: scale(1.2); } 0%, 49%, 71%, 100% { background-color: rgba(255, 255, 255, 0.4); transform: scale(1); } }@keyframes dot-highlight-4 { 75%, 95% { background-color: #ffffff; transform: scale(1.2); } 0%, 74%, 96%, 100% { background-color: rgba(255, 255, 255, 0.4); transform: scale(1); } }.dot-btn:nth-child(1) { animation: dot-highlight-1 16s infinite ease-in-out; }.dot-btn:nth-child(2) { animation: dot-highlight-2 16s infinite ease-in-out; }.dot-btn:nth-child(3) { animation: dot-highlight-3 16s infinite ease-in-out; }.dot-btn:nth-child(4) { animation: dot-highlight-4 16s infinite ease-in-out; }/* ★手動クリック時の制御（修正箇所）  ※1枚目は初期の自動再生用なので除外しています。*/#slide2:checked ~ .slider-wrapper { animation: none; transform: translateX(-25%); }#slide3:checked ~ .slider-wrapper { animation: none; transform: translateX(-50%); }#slide4:checked ~ .slider-wrapper { animation: none; transform: translateX(-75%); }#slide2:checked ~ .slider-dots .dot-btn,#slide3:checked ~ .slider-dots .dot-btn,#slide4:checked ~ .slider-dots .dot-btn { animation: none; background-color: rgba(255, 255, 255, 0.4); transform: scale(1); }#slide2:checked ~ .slider-dots .dot-btn:nth-child(2) { background-color: #ffffff; transform: scale(1.2); }#slide3:checked ~ .slider-dots .dot-btn:nth-child(3) { background-color: #ffffff; transform: scale(1.2); }#slide4:checked ~ .slider-dots .dot-btn:nth-child(4) { background-color: #ffffff; transform: scale(1.2); }/* ==========================================================================   5. メインコンテンツ   ========================================================================== */.main-layout {    display: flex;    gap: 40px;    padding: 60px 0;}.content-left {    flex: 3;    min-width: 0;}.content-right {    flex: 1;    min-width: 240px;}.section-title {    font-size: 1.4rem;    font-weight: 700;    color: #2a4073;    border-bottom: 2px solid #2a4073;    padding-bottom: 10px;    margin-bottom: 25px;    letter-spacing: 0.05em;}.news-table-wrapper {    max-height: 230px;    overflow-y: auto;    border: 1px solid #e2e8f0;    padding: 5px 15px;    background-color: #ffffff;}.news-table {    width: 100%;    border-collapse: collapse;    font-size: 0.95rem;}.news-table tr {    border-bottom: 1px solid #edf2f7;}.news-table tr:last-child {    border-bottom: none;}.table-date {    width: 120px;    padding: 15px 10px 15px 0;    color: #718096;    font-weight: 500;    white-space: nowrap;    vertical-align: top;}.table-text {    padding: 15px 0;    vertical-align: top;}.table-text a {    display: inline;    color: #005aff !important;       /* 💡HTMLの個別色を無視して、ベースの鮮やかな青に統一 */    text-decoration: underline;    font-weight: bold !important;    /* 💡HTMLの個別の太さを無視して、しっかり太字に統一 */}.table-text a:hover {    color: #2a4073 !important;       /* 💡マウスを乗せたときの色変化も確実に効かせます */    text-decoration: none;}.sidebar-btn {    display: block;    text-align: center;    padding: 12px;    margin-bottom: 15px;    border: 1px solid #2a4073;    border-radius: 4px;    color: #2a4073;    font-weight: 500;    background-color: #ffffff;}.sidebar-btn:hover {    background-color: #2a4073;    color: #ffffff;}.content-left div[style*="background-color: #fafafa"] a {    color: #005aff !important;    font-weight: bold !important;    text-decoration: none !important;}.content-left div[style*="background-color: #fafafa"] a:hover {    color: #2a4073 !important;    text-decoration: underline !important;}/* ==========================================================================   6. フッター   ========================================================================== */footer {    width: calc(100% + 40px);    margin-left: -20px;    margin-right: -20px;    padding: 40px 20px 30px 20px; /* ここに左右20pxのパディングを戻す */    background-color: #fafafa;    border-top: 1px solid #e2e8f0;}.footer-contact {    margin-bottom: 25px;    line-height: 1.8;}.footer-contact a {    border-bottom: 1px dashed #2f5f4b;    font-weight: 500;    color: #2f5f4b;}.footer-bottom {    border-top: 1px solid #e2e8f0;    padding-top: 20px;    display: flex;    justify-content: space-between;    color: #718096;}/* ==========================================================================   7. スマホ・タブレット用   ========================================================================== */@media (max-width: 768px) {    .nav-menu { flex-direction: column; }    .nav-item a { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 12px 0; }        /* ↓ TOPページ用の高さ */    .hero-section { height: 220px; }        /* ↓ ★今回追加！ 下層ページ用の高さ（TOPと同じにする） */    .page-hero-section { height: 220px; margin-bottom: 30px; }     .main-layout { flex-direction: column; gap: 40px; padding: 40px 0; }    .news-table-wrapper { max-height: 260px; overflow-y: auto; border: 1px solid #e2e8f0; padding: 5px 15px; background-color: #ffffff; -webkit-overflow-scrolling: touch; }    .news-table, .news-table tbody, .news-table tr, .news-table td { display: block; width: 100%; }}/* =========================================   学会概要以降：ビジュアル写真（固定・すっきりシンプル版）   ========================================= *//* 基本の枠組み（共通） */.page-hero-section {    position: relative;    height: 380px;    margin: 0 -20px 40px -20px;    display: flex;    align-items: center;    justify-content: center;    background-size: cover;    background-position: center center;}/* ページごとの画像指定クラス（これを作り足していきます） */.hero-about { background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), url('image/about_main.png'); }.hero-annual { background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), url('image/annual_main.png'); }.hero-ml { background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), url('image/ml_main.png'); }.hero-journal { background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), url('image/journal_main.png'); }/* 白い四角を無くし、文字に直接フチ（シャドウ）を効かせる */.page-hero-overlay {    background-color: transparent; /* 背景の白い四角を透明に */    padding: 0;    border-radius: 0;    box-shadow: none;    text-align: center;}.page-hero-title {    font-size: 2rem;    color: #2a4073; /* 文字色をテーマカラーの深縹に */    font-weight: 700;    margin: 0;    letter-spacing: 0.15em;    /* 白いフチ効果（文字の視認性を高めるクッキリ＆上品なシャドウ） */    text-shadow:         2px  2px 0px #ffffff, -2px  2px 0px #ffffff,        2px -2px 0px #ffffff, -2px -2px 0px #ffffff,        0px  2px 0px #ffffff,  0px -2px 0px #ffffff,        2px  0px 0px #ffffff, -2px  0px 0px #ffffff,        0px  0px 8px rgba(255,255,255,0.9);}/* ==========================================================================   規約ページ用：スタイリッシュ＆ミニマル装飾（行間・余白重視版）   ========================================================================== *//* 規約全体を包むスマートなコンテナ */.rules-container {    margin-top: 40px;    margin-bottom: 40px;    padding: 40px;    background-color: #ffffff;    border: 1px solid #e2e8f0;    border-radius: 8px;    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.01);    max-height: 550px;       /* 画面で見える最大の高さ */    overflow-y: auto;        /* 縦方向のスクロールバーを自動で出す */    -webkit-overflow-scrolling: touch; /* スマホやタブレットでの指スクロールをなめらかに */}/* 規約の大タイトル */.rules-main-title {    font-size: 1.5rem;    font-weight: 700;    color: #2a4073;    text-align: center;    margin-bottom: 50px;    letter-spacing: 0.1em;    position: relative;    padding-bottom: 15px;}/* タイトルの下に引く繊細な飾り線 */.rules-main-title::after {    content: '';    position: absolute;    bottom: 0;    left: 50%;    transform: translateX(-50%);    width: 60px;    height: 3px;    background-color: #2a4073;    border-radius: 2px;}/* 各章ごとの区切り空間 */.rules-section {    margin-bottom: 40px;    padding-bottom: 30px;    border-bottom: 1px dashed #e2e8f0;}.rules-section:last-child {    margin-bottom: 0;    padding-bottom: 0;    border-bottom: none;}/* 「第1章 総則」などの章タイトル */.rules-chapter-title {    font-size: 1.1rem;    font-weight: 700;    color: #2a4073;    margin-bottom: 25px;    letter-spacing: 0.05em;}/* 規約のリスト：複雑なセル分け（テーブル）を廃止し、すっきりした縦並びへ */.rules-list {    display: block;    width: 100%;}/* （名称）や（事務局）などの見出し */.rules-list dt {    display: block;    font-weight: 700;    color: #4a5568;    font-size: 0.95rem;    margin-top: 25px;      /* 前の条文との間隔 */    margin-bottom: 8px;    /* 本文との間隔 */}.rules-list dt:first-child {    margin-top: 0;         /* 最初の項目の上余白は無し */}/* 第○条〜の本文 */.rules-list dd {    display: block;    margin-left: 0;    margin-bottom: 0;    color: #333333;    line-height: 1.8;      /* ゆったりとした読みやすい行間 */}.rules-list dd strong {    color: #2a4073; /* 「第1条」などの文字を上品に強調 */    margin-right: 0.5em;}/* 条文内の（１）（２）などのインデント下げ */.rules-sub-list {    list-style: none;    padding-left: 15px;    /* 左側に少し余白を作って見やすく */    margin-top: 10px;    margin-bottom: 15px;}.rules-sub-list li {    margin-bottom: 8px;    color: #4a5568;    font-size: 0.95rem;    line-height: 1.7;}/* 付記・付則の小見出し */.rules-sub-title {    font-size: 1.05rem;    font-weight: 700;    color: #4a5568;    margin-top: 30px;    margin-bottom: 15px;}/* 改定履歴（付則）のお気に入り3列配置（ここだけ維持） */.history-list {    list-style: none;    padding-left: 0;    display: grid;    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));    gap: 8px 20px;}.history-list li {    font-size: 0.85rem;    color: #718096;    position: relative;    padding-left: 15px;}.history-list li::before {    content: '•';    position: absolute;    left: 0;    color: #a0aec0;}/* 各ページ共通：ビジュアル上のタイトルブロック */.page-hero-title-block {    display: flex;    align-items: center;    justify-content: center;    height: 100%;    width: 100%;}.page-hero-title {    font-size: 2rem;    color: #ffffff !important;    font-weight: 700;    margin: 0;    letter-spacing: 0.15em;    /* 白フチを廃止し、上品な黒影で立体感を出す */    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);}.history-list {    display: block !important;       /* 横並びの特殊設定（flex/grid）を完全に解除 */    column-count: 2 !important;      /* 強制的に2列にする */    column-gap: 40px !important;     /* 列と列の間の隙間 */    padding-left: 20px !important;    margin: 0 !important;}.history-list li {    display: list-item !important;   /* 横並びを解除して、普通の箇条書きの形に戻す */    width: auto !important;          /* 横幅をリセット */    margin-bottom: 8px !important;   /* 行と行の隙間 */    break-inside: avoid !important;  /* 列の途中で崩れないようにする */}/* ヘッダー全体の配置を左寄せにする */.header-main {    display: flex !important;    justify-content: flex-start !important; /* 中身を左寄せにする */    align-items: center;    padding: 10px 20px; /* 上下左右に適度な余白を作る（お好みで調整） */}/* バナー画像のサイズ調整 */.header-logo {    display: block;    max-width: 650px; /* 💡ここで画像の横幅を好きなサイズに指定してください */    width: 100%;    height: auto;     /* 画像の縦横比を崩さないおまじない */}/* ページ全体を包む箱の上部突き抜けを防止 */.wrapper-container {    padding-top: 0.1px !important;}