@charset "UTF-8";

/* =========================================
   基本設定（明朝体・背景色）
   ========================================= */
body {
    font-family: "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", "Times New Roman", serif;
    font-size: 14px;
    line-height: 1.6;
    color: #333;
    margin: 0;
    padding: 0; /* スマホ用に余白調整 */
    background-color: #f5f5f5;
}

a {
    color: #003366;
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}

/* =========================================
   レイアウト枠組み（レスポンシブ対応）
   ========================================= */
.academic-wrapper {
    width: 100%;             /* スマホ用に100% */
    max-width: 960px;        /* PCでは最大960px */
    margin: 20px auto;       /* 上下左右中央 */
    background-color: #fff;
    border: 1px solid #ccc;
    box-shadow: 0 0 10px rgba(0,0,0,0.05);
    box-sizing: border-box;  /* パディングを含めた幅計算 */
}

/* スマホでは画面いっぱいに広げる */
@media (max-width: 768px) {
    .academic-wrapper {
        margin: 0;
        border: none;
        box-shadow: none;
    }
}

/* フレックスボックスで横並びを実現 */
.academic-container {
    display: flex;
    align-items: stretch; /* 高さを揃える（尻切れ防止の肝） */
    border-top: 1px solid #ccc;
}

/* =========================================
   ヘッダー
   ========================================= */
.academic-header {
    padding: 25px 30px;
    background-color: #fff;
    border-bottom: 4px solid #003366;
}
.academic-header h1 {
    font-size: 26px;
    margin: 0;
    line-height: 1.2;
    letter-spacing: 0.05em;
}
.academic-header .subtitle {
    font-family: Arial, sans-serif;
    font-size: 11px;
    color: #666;
    margin-top: 5px;
    letter-spacing: 0.05em;
}

/* スマホ用ヘッダー調整 */
@media (max-width: 768px) {
    .academic-header {
        padding: 15px 20px;
    }
    .academic-header h1 {
        font-size: 20px;
    }
}

/* =========================================
   サイドバー（★修正箇所：尻切れ防止）
   ========================================= */
/* JavaScriptで読み込むための「箱」(#sidebar-part)にスタイルを適用します */
#sidebar-part {
    width: 230px;            /* 幅を固定 */
    flex-shrink: 0;          /* 縮まないようにする */
    background-color: #f0f0f0; /* ★背景色をここに移動（これで下まで伸びます） */
    border-right: 1px solid #999; /* ★境界線もここに移動 */
}

/* 中身のnavタグのスタイル */
.academic-sidebar {
    padding: 20px;
    font-size: 12px;
    box-sizing: border-box;
}

.academic-sidebar ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.academic-sidebar > ul > li {
    margin-bottom: 10px;
    font-weight: bold;
    border-bottom: 1px solid #ccc;
    padding-bottom: 4px;
}
.academic-sidebar ul ul {
    margin-top: 4px;
    padding-left: 10px;
}
.academic-sidebar ul ul li {
    font-weight: normal;
    border-bottom: none;
    margin-bottom: 3px;
    font-size: 11px;
    color: #444;
}
.academic-sidebar .pending {
    color: #aaa;
}

/* =========================================
   メインコンテンツ
   ========================================= */
.academic-main {
    flex: 1; /* 残りの幅を埋める */
    padding: 40px;
    background-color: #fff;
    min-height: 500px; /* 最低限の高さを確保 */
    box-sizing: border-box;
    overflow-x: hidden; /* はみ出し防止 */
}

.academic-main section {
    margin-bottom: 50px;
}

.academic-main h2 {
    font-size: 18px;
    border-left: 6px solid #003366;
    padding-left: 10px;
    margin-top: 0;
    margin-bottom: 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 5px;
}

/* ニュースリスト（表組み風） */
.news-list dt {
    float: left;
    clear: left;
    width: 120px;
    font-weight: bold;
    margin-bottom: 8px;
}
.news-list dd {
    margin-left: 120px;
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px dotted #ccc;
}
/* float解除 */
.news-list::after {
    content: "";
    display: block;
    clear: both;
}

/* 文書用スタイル */
.document-title {
    font-size: 22px;
    text-align: center;
    margin-bottom: 40px;
    font-weight: bold;
    letter-spacing: 0.1em;
}
.document-body p {
    margin-bottom: 1.5em;
    text-align: justify;
    line-height: 1.9;
}
.document-date {
    text-align: right;
    margin-top: 50px;
}
.document-sign {
    text-align: right;
    margin-top: 10px;
    font-weight: bold;
}

/* =========================================
   フッター
   ========================================= */
.academic-footer {
    background-color: #333;
    color: #fff;
    padding: 15px;
    text-align: center;
    font-size: 11px;
}

/* =========================================
   ★スマホ対応（レスポンシブ）設定
   ========================================= */
@media (max-width: 768px) {
    /* 1. コンテナを縦並びにする */
    .academic-container {
        display: block; /* Flex解除 */
    }

    /* 2. サイドバーを横幅いっぱいにし、メインの下（または上）に配置 */
    #sidebar-part {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #999;
        /* 背景色はそのまま */
    }
    
    /* サイドバーの中身を少し見やすくする */
    .academic-sidebar {
        padding: 15px 20px;
    }

    /* 3. メインコンテンツの余白を減らす */
    .academic-main {
        padding: 20px;
        min-height: auto; /* 高さはなりゆきで */
    }

    /* 文書のタイトルを少し小さく */
    .document-title {
        font-size: 18px;
        margin-bottom: 20px;
    }

    /* ニュースリストの崩れ防止（縦並びへ） */
    .news-list dt {
        float: none;
        width: 100%;
        margin-bottom: 2px;
    }
    .news-list dd {
        margin-left: 0;
        margin-bottom: 15px;
        padding-bottom: 10px;
    }
}